Phase 0: Load data from google drive
# Phase I
# mount drive from google drive
from google.colab import drive
drive.mount('/content/drive')
Mounted at /content/drive
import os
import shutil
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from os import listdir
from os.path import isfile, join
from matplotlib.pyplot import imshow
import matplotlib.image as mpimg
from keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, Flatten, MaxPool2D, Dropout
import tensorflow as tf
from tensorflow.keras.callbacks import EarlyStopping
from keras.layers import Dropout, Activation
from tensorflow.keras.layers import BatchNormalization
from keras.regularizers import l2
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
# no idea why it happens:
# IOError: Image File is truncated
# after the PIL is imported, it is solved
# maybe version conflicts
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
path = '/content/drive/My Drive/DL/DOG'
image_width, image_height = 256,256
# count total images in the dataset
def count_total_image(path):
num = 0
for d in os.listdir(path):
print("Folder name ", d)
for files in os.listdir(path+"/"+d):
for f in os.listdir(path+'/'+d+'/'+files):
num += 1
print("Total images = ", num)
# scan directories and display their distribution of each dog categories
def get_distribution_images(path):
dirs = os.listdir(path+'/train')
directories = ['Canis lupus','Gold retriever','German sheperd','Husky','Poodle']
directories_name=['cl','gr','gs','h','p']
directories_map = {'cl':'Canis lupus', 'gr':'Gold retriever','gs':'German sheperd','h':'Husky','p':'Poodle'}
fileamount = {}
for folder in directories_name:
fileamount[folder] = 0
for directoryName in os.listdir(path+'/train'):
if directoryName == folder:
temp = path+'/train/'+directoryName
fileamount[folder] += len(os.listdir(temp))
for directoryName in os.listdir(path+'/test'):
if directoryName == folder:
temp = path+'/test/'+directoryName
fileamount[folder] += len(os.listdir(temp))
for directoryName in os.listdir(path+'/valid'):
if directoryName == folder:
temp = path+'/valid/'+directoryName
fileamount[folder] += len(os.listdir(temp))
plt.xticks(rotation=45)
plt.bar([directories_map[x] for x in fileamount.keys()], fileamount.values())
plt.show()
count_total_image(path)
get_distribution_images(path)
Folder name train Folder name valid Folder name test Total images = 3176
# this function is from https://stackoverflow.com/questions/41210823/using-plt-imshow-to-display-multiple-images
def process(filename: str=None) -> None:
image = mpimg.imread(filename)
plt.figure()
plt.imshow(image)
path = '/content/drive/My Drive/DL/DOG'
# show two image in each folders
def show_sample_images(path):
files = os.listdir(path)
for directoryName in files:
temp = path+'/'+directoryName
for dir in os.listdir(temp):
i = 0
for file in os.listdir(temp+'/'+dir):
process(temp+'/'+dir+'/'+file)
i += 1
if i >= 2:
break
i = 0
show_sample_images(path)
/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:5: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). """
# this section merge all data into one folder, for the overfitting section
path0 = path+'0/train'
des = path+'0/all/all'
# print(path0, des)
j = 0
for dir in os.listdir(path0):
# print(dir)
for file in os.listdir(path0+'/'+dir):
file_name, file_extension = os.path.splitext(file)
shutil.copy(path0+'/'+dir+'/'+file, des+'/'+str(j)+file_extension)
j += 1
# print(j)
/content/drive/My Drive/DL/DOG0/train /content/drive/My Drive/DL/DOG0/all/all cl gr gs h p 3176
!ls '/content/drive/My Drive/DL/DOG/valid/cl' |wc -l
115
!ls '/content/drive/My Drive/DL/DOG0/'
all test train
# path0 is the directory containing all images, duplicate in both train and valid folders, no data split in both
path0 = '/content/drive/My Drive/DL/DOG0/'
def get_train_generator(path, image_width, image_height):
my_generator = ImageDataGenerator(rescale=1./255)
train_generator = my_generator.flow_from_directory( path+'/train/', target_size=(image_width, image_height), batch_size=32, class_mode='categorical')
# valid_generator = my_generator.flow_from_directory( path+'/test/', target_size=(image_width, image_height), batch_size=32, class_mode='categorical')
return train_generator
# can not be bigger, otherwise the dimension becomes negative
def overfitting(train_generator, layers,image_width, image_height):
model = Sequential()
j = 0
for i in range(len(layers)):
if i == 0:
model.add( Conv2D( layers[i], ( 3, 3 ), activation = 'relu' , input_shape = (image_width, image_height, 3)))
else:
model.add( Conv2D( layers[i], ( 3, 3 ), activation = 'relu'))
i += 1
# if maxpool2d is saved, the accuracy is pretty low in the project, so, in this step, it is skipped
# model.add( MaxPool2D(2,2) )
model.add( Flatten() )
model.add( Dense( 5, activation = 'softmax' ) )
model.summary()
model.compile( optimizer = 'adam', loss = 'categorical_crossentropy', metrics = [ 'accuracy',tf.keras.metrics.Precision(), tf.keras.metrics.Recall() ] )
# after testing several times, epochs = 10 is enough in this step
history = model.fit( train_generator, epochs = 10, batch_size = 64,verbose = 0 )
return history
def plot_result(history, key1, title):
plt.plot(history.history[key1])
# list(history.history.keys())[2][:list(history.history.keys())[2].rfind('_')]
plt.ylabel(str(key1)[:key1.rfind('_')])
plt.xlabel('Epoch')
plt.legend(['training data', ], loc='lower right')
plt.title(title)
plt.show()
def test_overfitting(path0, layers,image_width, image_height):
train_generator = get_train_generator(path0,image_width, image_height)
history = overfitting(train_generator, layers , image_width, image_height)
plot_result(history, list(history.history.keys())[0], 'Learning Curve Loss')
plot_result(history, list(history.history.keys())[1], 'Learning Curve Accuracy')
plot_result(history, list(history.history.keys())[2], 'Learning Curve precision')
plot_result(history, list(history.history.keys())[3], 'Learning Curve Recall')
return history
test_overfitting(path0, [16],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_20" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_22 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ flatten_20 (Flatten) (None, 1032256) 0 _________________________________________________________________ dense_36 (Dense) (None, 5) 5161285 ================================================================= Total params: 5,161,733 Trainable params: 5,161,733 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f5a08f80210>
test_overfitting(path0, [16,16],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_21" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_23 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ conv2d_24 (Conv2D) (None, 252, 252, 16) 2320 _________________________________________________________________ flatten_21 (Flatten) (None, 1016064) 0 _________________________________________________________________ dense_37 (Dense) (None, 5) 5080325 ================================================================= Total params: 5,083,093 Trainable params: 5,083,093 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f5abe8ff290>
test_overfitting(path0, [16,16,16],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_22" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_25 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ conv2d_26 (Conv2D) (None, 252, 252, 16) 2320 _________________________________________________________________ conv2d_27 (Conv2D) (None, 250, 250, 16) 2320 _________________________________________________________________ flatten_22 (Flatten) (None, 1000000) 0 _________________________________________________________________ dense_38 (Dense) (None, 5) 5000005 ================================================================= Total params: 5,005,093 Trainable params: 5,005,093 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f5abcb329d0>
test_overfitting(path0, [16,16,16,16],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_23" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_28 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ conv2d_29 (Conv2D) (None, 252, 252, 16) 2320 _________________________________________________________________ conv2d_30 (Conv2D) (None, 250, 250, 16) 2320 _________________________________________________________________ conv2d_31 (Conv2D) (None, 248, 248, 16) 2320 _________________________________________________________________ flatten_23 (Flatten) (None, 984064) 0 _________________________________________________________________ dense_39 (Dense) (None, 5) 4920325 ================================================================= Total params: 4,927,733 Trainable params: 4,927,733 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f5abe8e8950>
test_overfitting(path0, [16,16,16,16,16],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_24" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_32 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ conv2d_33 (Conv2D) (None, 252, 252, 16) 2320 _________________________________________________________________ conv2d_34 (Conv2D) (None, 250, 250, 16) 2320 _________________________________________________________________ conv2d_35 (Conv2D) (None, 248, 248, 16) 2320 _________________________________________________________________ conv2d_36 (Conv2D) (None, 246, 246, 16) 2320 _________________________________________________________________ flatten_24 (Flatten) (None, 968256) 0 _________________________________________________________________ dense_40 (Dense) (None, 5) 4841285 ================================================================= Total params: 4,851,013 Trainable params: 4,851,013 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f5abc816bd0>
test_overfitting(path0, [16,16,16,16,16,16],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_25" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_37 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ conv2d_38 (Conv2D) (None, 252, 252, 16) 2320 _________________________________________________________________ conv2d_39 (Conv2D) (None, 250, 250, 16) 2320 _________________________________________________________________ conv2d_40 (Conv2D) (None, 248, 248, 16) 2320 _________________________________________________________________ conv2d_41 (Conv2D) (None, 246, 246, 16) 2320 _________________________________________________________________ conv2d_42 (Conv2D) (None, 244, 244, 16) 2320 _________________________________________________________________ flatten_25 (Flatten) (None, 952576) 0 _________________________________________________________________ dense_41 (Dense) (None, 5) 4762885 ================================================================= Total params: 4,774,933 Trainable params: 4,774,933 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f5a04222b90>
From the structure above, you can add more layers
test_overfitting(path0, [32],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_27" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_47 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ flatten_27 (Flatten) (None, 2064512) 0 _________________________________________________________________ dense_43 (Dense) (None, 5) 10322565 ================================================================= Total params: 10,323,461 Trainable params: 10,323,461 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f597da0f110>
test_overfitting(path0, [32,32],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_28" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_48 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ conv2d_49 (Conv2D) (None, 252, 252, 32) 9248 _________________________________________________________________ flatten_28 (Flatten) (None, 2032128) 0 _________________________________________________________________ dense_44 (Dense) (None, 5) 10160645 ================================================================= Total params: 10,170,789 Trainable params: 10,170,789 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f597e2d2b50>
test_overfitting(path0, [32,32,32],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_29" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_50 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ conv2d_51 (Conv2D) (None, 252, 252, 32) 9248 _________________________________________________________________ conv2d_52 (Conv2D) (None, 250, 250, 32) 9248 _________________________________________________________________ flatten_29 (Flatten) (None, 2000000) 0 _________________________________________________________________ dense_45 (Dense) (None, 5) 10000005 ================================================================= Total params: 10,019,397 Trainable params: 10,019,397 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f5abc899a10>
test_overfitting(path0, [64],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_30" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_53 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ flatten_30 (Flatten) (None, 4129024) 0 _________________________________________________________________ dense_46 (Dense) (None, 5) 20645125 ================================================================= Total params: 20,646,917 Trainable params: 20,646,917 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f597ced9a50>
test_overfitting(path0, [64,64],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_31" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_54 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ conv2d_55 (Conv2D) (None, 252, 252, 64) 36928 _________________________________________________________________ flatten_31 (Flatten) (None, 4064256) 0 _________________________________________________________________ dense_47 (Dense) (None, 5) 20321285 ================================================================= Total params: 20,360,005 Trainable params: 20,360,005 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f5a0930f790>
test_overfitting(path0, [64,64,64],image_width, image_height)
Found 3176 images belonging to 5 classes. Model: "sequential_32" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_56 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ conv2d_57 (Conv2D) (None, 252, 252, 64) 36928 _________________________________________________________________ conv2d_58 (Conv2D) (None, 250, 250, 64) 36928 _________________________________________________________________ flatten_32 (Flatten) (None, 4000000) 0 _________________________________________________________________ dense_48 (Dense) (None, 5) 20000005 ================================================================= Total params: 20,075,653 Trainable params: 20,075,653 Non-trainable params: 0 _________________________________________________________________
<tensorflow.python.keras.callbacks.History at 0x7f597cdab250>
From examples above, their accuracy reaches the almost 1, not matter which one to use.
1
# this part is used to split images into training, valid and test datasets, it only show the result here since each
# time, random will generate different values
import random
files = os.listdir(path+'/train')
fileamount = []
for directoryName in files:
# directories.append(directoryName)
temp = path+'/train/'+directoryName
fileamount.append(len(os.listdir(temp)))
print(fileamount)
print(sum(fileamount))
dirlist = ['cl','gr','gs','h','p']
for l in range(len(fileamount)):
i = 0
randNum = int(fileamount[l] * 0.3)
print(randNum)
fileIndex = sorted(random.sample(range(fileamount[l]), randNum))
print(fileIndex)
f = open(str(dirlist[l]+".txt"), "w")
for index in fileIndex:
f.write(str(index)+"\n")
f.close()
[550, 773, 614, 770, 469] 3176 165 [4, 6, 8, 11, 14, 18, 20, 22, 26, 28, 29, 31, 32, 33, 37, 38, 40, 41, 44, 46, 49, 52, 53, 55, 58, 60, 62, 64, 65, 68, 69, 77, 78, 79, 81, 84, 85, 87, 91, 92, 94, 99, 100, 101, 103, 104, 106, 112, 118, 119, 121, 123, 125, 127, 132, 139, 150, 152, 156, 159, 164, 168, 169, 176, 178, 184, 190, 196, 197, 202, 204, 211, 222, 229, 233, 234, 236, 241, 243, 250, 254, 256, 260, 263, 267, 271, 275, 278, 281, 285, 289, 290, 293, 301, 302, 303, 306, 312, 315, 316, 319, 321, 330, 333, 340, 341, 344, 349, 350, 352, 353, 363, 365, 370, 371, 376, 377, 378, 379, 385, 391, 393, 394, 395, 396, 397, 408, 410, 412, 415, 417, 418, 423, 425, 426, 430, 432, 433, 443, 446, 449, 454, 456, 457, 461, 463, 467, 473, 483, 488, 490, 491, 503, 505, 510, 517, 521, 523, 524, 529, 534, 535, 541, 547, 548] 231 [2, 6, 7, 9, 13, 15, 16, 19, 22, 25, 37, 38, 41, 44, 54, 57, 60, 63, 67, 68, 70, 77, 78, 84, 96, 98, 103, 105, 106, 108, 115, 117, 120, 121, 122, 123, 125, 127, 128, 130, 131, 133, 137, 139, 146, 150, 156, 157, 160, 161, 163, 164, 166, 169, 173, 177, 182, 197, 201, 209, 214, 217, 220, 229, 230, 236, 242, 248, 252, 253, 255, 256, 259, 260, 261, 263, 266, 271, 275, 276, 279, 285, 286, 290, 291, 296, 298, 302, 305, 307, 313, 315, 316, 317, 318, 321, 326, 332, 334, 337, 338, 342, 345, 351, 358, 360, 363, 368, 370, 373, 375, 376, 378, 382, 385, 387, 390, 391, 394, 398, 405, 407, 415, 417, 418, 419, 424, 425, 427, 428, 430, 432, 437, 440, 444, 445, 447, 454, 456, 461, 462, 464, 467, 468, 470, 474, 476, 477, 479, 481, 483, 488, 491, 493, 496, 509, 511, 513, 516, 519, 527, 540, 541, 543, 544, 545, 546, 553, 555, 573, 578, 584, 590, 595, 598, 600, 604, 606, 611, 617, 618, 634, 640, 645, 646, 654, 659, 660, 662, 666, 668, 670, 675, 676, 677, 682, 683, 684, 686, 689, 691, 692, 694, 696, 698, 701, 702, 704, 705, 707, 709, 710, 711, 715, 720, 723, 724, 727, 729, 730, 732, 736, 738, 740, 743, 747, 748, 751, 764, 767, 770] 184 [0, 4, 6, 10, 11, 18, 19, 20, 24, 27, 28, 29, 31, 32, 33, 34, 35, 37, 39, 41, 43, 44, 46, 47, 50, 51, 53, 58, 59, 60, 69, 73, 74, 78, 83, 88, 90, 92, 98, 102, 105, 108, 110, 113, 116, 117, 119, 121, 128, 133, 141, 144, 145, 152, 158, 159, 160, 171, 173, 174, 175, 177, 186, 187, 192, 197, 202, 203, 205, 206, 207, 212, 215, 220, 221, 232, 233, 239, 242, 245, 246, 247, 249, 252, 253, 261, 262, 264, 265, 268, 271, 274, 277, 281, 293, 294, 295, 296, 297, 298, 301, 307, 308, 309, 310, 312, 317, 320, 323, 327, 328, 332, 338, 341, 346, 357, 361, 366, 370, 373, 375, 377, 379, 380, 381, 394, 396, 397, 400, 401, 404, 405, 406, 409, 411, 412, 421, 424, 429, 430, 431, 432, 433, 434, 435, 444, 446, 457, 459, 461, 465, 467, 471, 473, 478, 491, 497, 501, 502, 510, 511, 512, 513, 514, 521, 525, 529, 532, 537, 540, 543, 546, 551, 560, 562, 563, 577, 581, 588, 595, 600, 605, 611, 613] 231 [2, 3, 4, 6, 13, 19, 25, 26, 33, 36, 38, 40, 44, 46, 49, 50, 52, 53, 55, 57, 60, 68, 69, 71, 72, 73, 80, 83, 87, 89, 93, 94, 96, 97, 98, 100, 101, 104, 105, 115, 118, 119, 124, 127, 128, 129, 130, 135, 137, 139, 143, 144, 151, 152, 153, 161, 165, 182, 185, 186, 192, 195, 197, 202, 204, 206, 209, 211, 212, 214, 215, 224, 229, 230, 231, 232, 233, 235, 239, 240, 241, 246, 247, 248, 249, 251, 252, 257, 261, 263, 266, 268, 272, 274, 278, 280, 289, 295, 302, 305, 306, 308, 318, 321, 322, 325, 326, 327, 331, 333, 336, 337, 338, 357, 363, 364, 367, 369, 371, 379, 380, 383, 384, 386, 388, 393, 395, 406, 407, 423, 429, 430, 431, 433, 434, 437, 441, 445, 446, 450, 472, 473, 476, 481, 483, 484, 486, 490, 492, 496, 497, 499, 500, 502, 503, 504, 509, 519, 527, 531, 535, 538, 539, 543, 550, 558, 559, 564, 566, 572, 574, 577, 579, 584, 585, 587, 590, 591, 592, 594, 596, 597, 609, 611, 614, 618, 620, 622, 624, 625, 626, 627, 629, 632, 637, 638, 641, 647, 650, 652, 658, 660, 667, 670, 673, 680, 681, 688, 690, 694, 696, 706, 707, 712, 713, 716, 718, 726, 727, 728, 733, 740, 741, 743, 745, 747, 752, 756, 759, 764, 769] 140 [4, 5, 10, 12, 21, 22, 28, 29, 33, 34, 36, 40, 41, 47, 48, 51, 57, 58, 63, 64, 67, 72, 74, 76, 80, 84, 85, 88, 93, 97, 98, 100, 110, 111, 112, 117, 121, 132, 133, 141, 142, 146, 149, 153, 161, 164, 176, 182, 193, 195, 196, 199, 202, 204, 205, 213, 214, 215, 218, 222, 224, 225, 226, 231, 233, 234, 235, 236, 237, 241, 242, 243, 248, 250, 252, 254, 258, 259, 261, 262, 263, 275, 279, 280, 281, 285, 286, 289, 293, 296, 297, 311, 318, 323, 325, 329, 331, 332, 336, 337, 340, 344, 346, 347, 349, 352, 353, 354, 356, 357, 358, 366, 367, 371, 375, 378, 379, 382, 383, 391, 395, 396, 398, 406, 408, 412, 413, 414, 422, 423, 425, 428, 429, 434, 436, 439, 442, 459, 460, 468]
i = 0
print(path)
print(len(validFiles))
dirlist = ['cl','gr','gs','h','p']
for dir in dirlist:
print(validFiles[i])
print(testFiles[i])
for file in validFiles[i]:
shutil.move(path+'/train/'+dir+'/'+file, path+'/valid/'+dir+'/'+file)
for file in testFiles[i]:
shutil.move(path+'/train/'+dir+'/'+file, path+'/test/'+dir+'/'+file)
i = i + 1
# by now, the files have been split into train, valid and test
/content/drive/My Drive/DL/DOG 5 ['image (2).jpeg', 'image.jpeg', 'image (17).jpeg', 'images (32).jpeg', 'images (4).jpeg', 'images (54).jpeg', 'images (55).jpeg', 'images (40).jpeg', 'images (12).jpeg', 'images (38).jpeg', 'image (19).jpeg', 'images (8).jpeg', 'images (13).jpeg', 'images (48).jpeg', 'images (22).jpeg', 'images (20).jpeg', 'images (3).jpeg', 'image (9).jpeg', 'images (15).jpeg', 'image (16).jpeg', 'image (10).jpeg', 'images (41).jpeg', 'images (19).jpeg', 'images (50).jpeg', 'image (14).jpeg', 'image (4).jpeg', 'images (46).jpeg', 'image (18).jpeg', 'images (16).jpeg', 'image (1).jpeg', 'images (5).jpeg', 'images (503).jpeg', 'images (123).jpeg', 'images (338).jpeg', 'images (354).jpeg', 'images (165).jpeg', 'images (300).jpeg', 'images (68).jpeg', 'images (138).jpeg', 'images (162).jpeg', 'images (112).jpeg', 'images (228).jpeg', 'images (113).jpeg', 'images (109).jpeg', 'images (84).jpeg', 'images (318).jpeg', 'images (455).jpeg', 'images (124).jpeg', 'images (227).jpeg', 'images (131).jpeg', 'images (342).jpeg', 'images (489).jpeg', 'images (184).jpeg', 'images (143).jpeg', 'images (284).jpeg', 'images (451).jpeg', 'images (573).jpeg', 'images (531).jpeg', 'images (554).jpeg', 'images (230).jpeg', 'images (133).jpeg', 'images (423).jpeg', 'images (466).jpeg', 'images (74).jpeg', 'images (173).jpeg', 'images (370).jpeg', 'images (426).jpeg', 'images (400).jpeg', 'images (236).jpeg', 'images (417).jpeg', 'images (161).jpeg', 'images (294).jpeg', 'images (275).jpeg', 'images (267).jpeg', 'images (287).jpeg', 'images (471).jpeg', 'images (555).jpeg', 'images (514).jpeg', 'images (88).jpeg', 'images (114).jpeg', 'images (445).jpeg', 'images (176).jpeg', 'images (398).jpeg', 'images (169).jpeg', 'images (170).jpeg', 'images (343).jpeg', 'images (238).jpeg', 'images (280).jpeg', 'images (564).jpeg', 'images (443).jpeg', 'images (353).jpeg', 'images (340).jpeg', 'images (218).jpeg', 'images (576).jpeg', 'images (282).jpeg', 'images (397).jpeg', 'images (373).jpeg', 'images (87).jpeg', 'images (375).jpeg', 'images (444).jpeg', 'images (200).jpeg', 'images (249).jpeg', 'images (559).jpeg', 'images (72).jpeg', 'images (64).jpeg', 'images (508).jpeg', 'images (141).jpeg', 'images (278).jpeg', 'images (127).jpeg', 'images (246).jpeg', 'images (422).jpeg', 'images (137).jpeg', 'images (431).jpeg', 'images (350).jpeg', 'images (534).jpeg'] ['images (211).jpeg', 'images (207).jpeg', 'images (150).jpeg', 'images (96).jpeg', 'images (299).jpeg', 'images (179).jpeg', 'images (578).jpeg', 'images (202).jpeg', 'images (572).jpeg', 'images (94).jpeg', 'images (217).jpeg', 'images (89).jpeg', 'images (91).jpeg', 'images (297).jpeg', 'images (274).jpeg', 'images (563).jpeg', 'images (62).jpeg', 'images (542).jpeg', 'images (212).jpeg', 'images (591).jpeg', 'images (570).jpeg', 'images (139).jpeg', 'images (447).jpeg', 'images (220).jpeg', 'images (120).jpeg', 'images (189).jpeg', 'images (436).jpeg', 'images (364).jpeg', 'images (86).jpeg', 'images (265).jpeg', 'images (533).jpeg', 'images (101).jpeg', 'images (566).jpeg', 'images (334).jpeg', 'images (477).jpeg', 'images (435).jpeg', 'images (188).jpeg', 'images (303).jpeg', 'images (581).jpeg', 'images (356).jpeg', 'images (395).jpeg', 'images (76).jpeg', 'images (171).jpeg', 'images (258).jpeg', 'images (522).jpeg', 'images (456).jpeg', 'images (136).jpeg', 'images (191).jpeg', 'images (295).jpeg', 'images (378).jpeg'] ['Golden_Retriever_Carlos_-10581910556-.jpg', 'Golden-Retriever-Health-And-Care.jpg', 'Golden-Retriever_Square.jpg', 'golden-retriever (1).jpg', 'golden-retriever-in-field-of-flowers.jpg', 'golden-retriever-puppy (1).jpg', '1_jay-molvie-golden.jpg', 'golden_retriever_skin_issues.jpg', '002109_1.jpg', 'golden-retriever.jpg', 'dog-1994692_1920.jpg', '5f69c81757b7da001ee12fca.jpeg', 'golden-retriever-1-750x532.jpg', 'golden-retriever (3).jpg', 'images (624).jpeg', 'images (381).jpeg', 'image (30).jpeg', 'images (232).jpeg', 'image (13).jpeg', 'image (2).jpeg', 'images (582).jpeg', 'images (157).jpeg', 'images (231).jpeg', 'images (614).jpeg', 'goldenretrieversf1.jpg', 'images (524).jpeg', 'images (639).jpeg', 'images (668).jpeg', 'images (393).jpeg', 'images (30).jpeg', 'images (394).jpeg', 'images (138).jpeg', 'images (364).jpeg', 'images (357).jpeg', 'images (443).jpeg', 'images (621).jpeg', 'images (311).jpeg', 'images (392).jpeg', 'images (514).jpeg', 'images (250).jpeg', 'images (436).jpeg', 'images (683).jpeg', 'images (585).jpeg', 'images (557).jpeg', 'images (195).jpeg', 'images (224).jpeg', 'images (371).jpeg', 'images (678).jpeg', 'image (24).jpeg', 'unnamed.jpg', 'images (404).jpeg', 'images (191).jpeg', 'images (692).jpeg', 'images (497).jpeg', 'images (76).jpeg', 'images (622).jpeg', 'images (13).jpeg', 'images (62).jpeg', 'images (263).jpeg', 'images (61).jpeg', 'images (591).jpeg', 'images (592).jpeg', 'images (164).jpeg', 'images (81).jpeg', 'images (98).jpeg', 'images (130).jpeg', 'images (439).jpeg', 'images (78).jpeg', 'images (18).jpeg', 'images (135).jpeg', 'images (307).jpeg', 'images (627).jpeg', 'images (95).jpeg', 'images (464).jpeg', 'images (529).jpeg', 'images (119).jpeg', 'images (272).jpeg', 'pixfromsylvia.jpg', 'images (202).jpeg', 'images (268).jpeg', 'images (599).jpeg', 'types-golden-retrievers.jpg', 'images (212).jpeg', 'image (22).jpeg', 'images.jpeg', 'images (628).jpeg', 'images (636).jpeg', 'images (566).jpeg', 'images (688).jpeg', 'images (59).jpeg', 'images (644).jpeg', 'images (171).jpeg', 'images (186).jpeg', 'images (238).jpeg', 'images (510).jpeg', 'images (114).jpeg', 'how-long-do-golden-retrievers-live-KH-long.jpg', 'images (241).jpeg', 'images (99).jpeg', 'images (414).jpeg', 'images (42).jpeg', 'images (584).jpeg', 'images (120).jpeg', 'images (410).jpeg', 'images (386).jpeg', 'images (576).jpeg', 'images (385).jpeg', 'images (297).jpeg', 'images (519).jpeg', 'images (631).jpeg', 'images (540).jpeg', 'what-kind-health-problems-do-golden-retrievers-have.jpg', 'images (645).jpeg', 'images (377).jpeg', 'images (221).jpeg', 'images (593).jpeg', 'images (646).jpeg', 'images (190).jpeg', 'images (218).jpeg', 'images (303).jpeg', 'images (108).jpeg', 'images (459).jpeg', 'images (275).jpeg', 'images (647).jpeg', 'images (269).jpeg', 'images (446).jpeg', 'images (384).jpeg', 'images (530).jpeg', 'images (298).jpeg', 'images (421).jpeg', 'images (461).jpeg', 'images (160).jpeg', 'images (422).jpeg', 'photos-golden-retriever-puppies.jpg', 'Screen-Shot-2020-06-04-at-4-05-05-PM.png', 'images (55).jpeg', 'images (571).jpeg', 'images (413).jpeg', 'images (603).jpeg', 'images (433).jpeg', 'images (318).jpeg', 'images (663).jpeg', 'images (128).jpeg', 'images (515).jpeg', 'images (326).jpeg', 'image (19).jpeg', 'images (655).jpeg', 'images (419).jpeg', 'images (255).jpeg', 'images (313).jpeg', 'images (281).jpeg', 'images (173).jpeg', 'images (618).jpeg', 'images (535).jpeg', 'images (680).jpeg', 'images (237).jpeg', 'images (290).jpeg', 'Lucky5.jpg', 'images (632).jpeg', 'images (67).jpeg', 'images (483).jpeg'] ['images (551).jpeg', 'images (159).jpeg', 'images (235).jpeg', 'images (435).jpeg', 'images (642).jpeg', 'images (457).jpeg', 'images (300).jpeg', 'images (699).jpeg', 'images (82).jpeg', 'images (213).jpeg', 'images (38).jpeg', 'tmp_7VYPfN_0a1b7c56b554b3b9_GettyImages-85597067.jpg', 'images (165).jpeg', 'images (467).jpeg', 'images (49).jpeg', 'images (309).jpeg', 'images (379).jpeg', 'images (323).jpeg', 'images (358).jpeg', 'images (155).jpeg', 'images (254).jpeg', 'images (579).jpeg', 'images (575).jpeg', 'images (401).jpeg', 'images (266).jpeg', 'images (207).jpeg', 'images (671).jpeg', 'images (273).jpeg', 'images (72).jpeg', 'images (504).jpeg', 'images (572).jpeg', 'images (89).jpeg', 'image (10).jpeg', 'images (648).jpeg', 'images (547).jpeg', 'images (102).jpeg', 'images (625).jpeg', 'images (220).jpeg', 'images (33).jpeg', 'images (22).jpeg', 'images (400).jpeg', 'images (602).jpeg', 'images (60).jpeg', 'images (573).jpeg', 'images (525).jpeg', 'images (118).jpeg', 'images (449).jpeg', 'images (509).jpeg', 'golden-retrievers-scotland-facebook.png', 'images (258).jpeg', 'images (116).jpeg', 'images (168).jpeg', 'images (380).jpeg', 'images (261).jpeg', 'images (403).jpeg', 'unnamed (1).jpg', 'oldest-golden-retriever-1593191827.jpg', 'images (480).jpeg', 'images (634).jpeg', 'images (111).jpeg', 'images (182).jpeg', 'images (651).jpeg', 'images (9).jpeg', 'images (578).jpeg', 'images (617).jpeg', 'images (330).jpeg', 'images (295).jpeg', 'images (32).jpeg', 'images (388).jpeg', 'images (216).jpeg'] ['images (543).jpeg', 'images (353).jpeg', 'images (394).jpeg', 'images (585).jpeg', 'images (416).jpeg', 'images (185).jpeg', 'images (465).jpeg', 'images (557).jpeg', 'images (331).jpeg', 'images (414).jpeg', 'images (219).jpeg', 'images (517).jpeg', 'image (25).jpeg', 'images (120).jpeg', 'images (556).jpeg', 'images (45).jpeg', 'images (165).jpeg', 'images (408).jpeg', 'images (326).jpeg', 'images (275).jpeg', 'images (54).jpeg', 'images (281).jpeg', 'images (264).jpeg', 'images (195).jpeg', 'images (356).jpeg', 'images (157).jpeg', 'images (466).jpeg', 'image (7).jpeg', 'images (605).jpeg', 'images (581).jpeg', 'images (32).jpeg', 'images (485).jpeg', 'images (41).jpeg', 'images (602).jpeg', 'images (3).jpeg', 'images (460).jpeg', 'images (463).jpeg', 'images (52).jpeg', 'images (82).jpeg', 'images (263).jpeg', 'images (309).jpeg', 'images (84).jpeg', 'images (7).jpeg', 'image (4).jpeg', 'images (306).jpeg', 'image (28).jpeg', 'images (292).jpeg', 'images (86).jpeg', 'images (106).jpeg', 'images (270).jpeg', 'images (39).jpeg', 'images (212).jpeg', 'images (526).jpeg', 'images (407).jpeg', 'images (122).jpeg', 'images (554).jpeg', 'images (192).jpeg', 'images (478).jpeg', 'images (152).jpeg', 'images (335).jpeg', 'images (259).jpeg', 'images (519).jpeg', 'images (409).jpeg', 'image (23).jpeg', 'images (398).jpeg', 'images (6).jpeg', 'images (513).jpeg', 'images (473).jpeg', 'images (203).jpeg', 'images (429).jpeg', 'images (590).jpeg', 'images (299).jpeg', 'images (291).jpeg', 'images (243).jpeg', 'image (13).jpeg', 'images (23).jpeg', 'images (500).jpeg', 'images (343).jpeg', 'images (482).jpeg', 'images (483).jpeg', 'images (16).jpeg', 'images (334).jpeg', 'images (587).jpeg', 'images (48).jpeg', 'images (596).jpeg', 'images (199).jpeg', 'images (354).jpeg', 'images (158).jpeg', 'images (475).jpeg', 'images (413).jpeg', 'images (260).jpeg', 'images (533).jpeg', 'images (607).jpeg', 'images (130).jpeg', 'images (205).jpeg', 'images (492).jpeg', 'images (248).jpeg', 'images (508).jpeg', 'images (434).jpeg', 'images (420).jpeg', 'images (168).jpeg', 'images (119).jpeg', 'images (544).jpeg', 'images (382).jpeg', 'images (357).jpeg', 'images (80).jpeg', 'images (509).jpeg', 'images (239).jpeg', 'images (140).jpeg', 'images (230).jpeg', 'images (77).jpeg', 'images (9).jpeg', 'images (337).jpeg', 'images (246).jpeg', 'images (297).jpeg', 'images (220).jpeg', 'images (417).jpeg', 'images (186).jpeg', 'images (224).jpeg', 'images (323).jpeg', 'images (146).jpeg', 'images (332).jpeg', 'images (565).jpeg', 'images (377).jpeg', 'images (385).jpeg', 'image (22).jpeg', 'images (271).jpeg', 'images (567).jpeg'] ['image (15).jpeg', 'images (214).jpeg', 'images (4).jpeg', 'images (594).jpeg', 'images (269).jpeg', 'images (523).jpeg', 'images (253).jpeg', 'images (286).jpeg', 'images (65).jpeg', 'images (424).jpeg', 'images (144).jpeg', 'images (474).jpeg', 'images (76).jpeg', 'images (612).jpeg', 'images (464).jpeg', 'images (179).jpeg', 'images (105).jpeg', 'image (6).jpeg', 'images (139).jpeg', 'images (236).jpeg', 'images (265).jpeg', 'images (566).jpeg', 'images (451).jpeg', 'images (504).jpeg', 'images (33).jpeg', 'images (362).jpeg', 'images (378).jpeg', 'images (342).jpeg', 'images (410).jpeg', 'images (535).jpeg', 'images (30).jpeg', 'images (449).jpeg', 'images (98).jpeg', 'images (527).jpeg', 'images (176).jpeg', 'images (277).jpeg', 'images (311).jpeg', 'images (200).jpeg', 'images (536).jpeg', 'images (93).jpeg', 'images (289).jpeg', 'images (89).jpeg', 'images (79).jpeg', 'image (12).jpeg', 'images (462).jpeg', 'images (17).jpeg', 'images (194).jpeg', 'image (17).jpeg', 'images (341).jpeg', 'images (114).jpeg', 'images (167).jpeg', 'images (159).jpeg', 'images (496).jpeg', 'images (128).jpeg', 'images (529).jpeg', 'images (87).jpeg'] ['118922819-siberian-husky-dogs-two-beautiful-siberian-huskies.jpg', 'dbcd665586b86359ba113cdbb3.jpg', 'Husky-white2.jpg', 'hypatia-h_0388aa0f152530504dd3310a0f18c291-h_ffdee1bce4275fd.jpg', 'image (10).jpeg', 'husky.png', 'huskyforbreedofthemonth.jpg', 'Husky_Growth_Chart.jpg', 'image (13).jpeg', 'GettyImages-1277712812-e1610050216174.jpg', 'image (2).jpeg', '5a316620ec1ade73284a9998.png', 'Black-Magic-Big-Boy.jpg', 'greenland-dogs-lead.jpg', '220px-DOG-HUSKY_23JUL00.jpg', 'andriyko-podilnyk-M4NYOsSre6g-unsplash.jpg', 'DogWatch-Blog-Featured-Image-Husky.png', 'image (7).jpeg', 'husky2.jpg', '71379863_m-1024x683.jpg', 'images (580).jpeg', 'images (604).jpeg', 'images (54).jpeg', 'images (481).jpeg', 'images (600).jpeg', 'images (136).jpeg', 'images (111).jpeg', 'images (403).jpeg', 'images (244).jpeg', 'images (18).jpeg', 'images (459).jpeg', 'images (646).jpeg', 'images (452).jpeg', 'images (635).jpeg', 'images (400).jpeg', 'images (206).jpeg', 'images (495).jpeg', 'images (407).jpeg', 'images (690).jpeg', 'images (6).jpeg', 'images (360).jpeg', 'siberian-husky-card-small.jpg', 'Red-Husky-Feature.jpg', 'images (106).jpeg', 'images (482).jpeg', 'images (653).jpeg', 'images (131).jpeg', 'images (141).jpeg', 'images (36).jpeg', 'images (465).jpeg', 'white-and-black-siberian-husky-2853129.jpg', 'imagedogstwo-siberian-huskies-different-colorsblog.jpg', 'images (43).jpeg', 'image-1.jpg', 'images (487).jpeg', 'images (662).jpeg', 'images (652).jpeg', 'image (15).jpeg', 'images (480).jpeg', 'images (466).jpeg', 'images (519).jpeg', 'Screen-Shot-2019-12-02-at-12-01-13-PM.png', 'images (253).jpeg', 'images (251).jpeg', 'images (555).jpeg', 'images (645).jpeg', 'images (182).jpeg', 'images (479).jpeg', 'Siberian-husky.jpg', 'images (494).jpeg', 'images (164).jpeg', 'images (64).jpeg', 'images (59).jpeg', 'images (28).jpeg', 'images (72).jpeg', 'images (665).jpeg', 'images (441).jpeg', 'images (450).jpeg', 'images (157).jpeg', 'images (601).jpeg', 'images (620).jpeg', 'images (68).jpeg', 'images (461).jpeg', 'images (1).jpeg', 'images (440).jpeg', 'images (34).jpeg', 'images (45).jpeg', 'images (682).jpeg', 'thousands-of-years-of-the-siberian-husky.jpg', 'images (593).jpeg', 'images (617).jpeg', 'images (632).jpeg', 'images (570).jpeg', 'images (242).jpeg', 'images (402).jpeg', 'Siberian-Husky2-1330x711.jpg', 'images (347).jpeg', 'images (117).jpeg', 'images (463).jpeg', 'images (543).jpeg', 'images (346).jpeg', 'images (538).jpeg', 'images (554).jpeg', 'images (696).jpeg', 'WORKING_Siberian-Husky.jpg', 'turtle_orig.jpg', 'images (174).jpeg', 'SiberianHuskyPurebredDogAce2YearsOld.jpg', 'images (462).jpeg', 'images (308).jpeg', 'images (524).jpeg', 'images (568).jpeg', 'images (247).jpeg', 'images (583).jpeg', 'images (187).jpeg', 'images (598).jpeg', 'images (312).jpeg', 'nbc_dogs_working_siberianhusky_201116.jpg', 'images (107).jpeg', 'images (105).jpeg', 'images (119).jpeg', 'images (362).jpeg', 'images (546).jpeg', 'images (558).jpeg', 'images (198).jpeg', 'image (23).jpeg', 'images (445).jpeg', 'images (474).jpeg', 'images (526).jpeg', 'images (683).jpeg', 'images (197).jpeg', 'images (473).jpeg', 'images (640).jpeg', 'images (77).jpeg', 'images (177).jpeg', 'image.jpeg', 'images (205).jpeg', 'images (404).jpeg', 'images (145).jpeg', 'images (169).jpeg', 'images (680).jpeg', 'images (576).jpeg', 'images (175).jpeg', 'images (397).jpeg', 'images (375).jpeg', 'images (99).jpeg', 'images (672).jpeg', 'images (534).jpeg', 'images (537).jpeg', 'images (422).jpeg', 'images (158).jpeg', 'images (190).jpeg', 'images (97).jpeg', 'images (108).jpeg', 'images (273).jpeg', 'images (152).jpeg', 'images (485).jpeg', 'images (648).jpeg', 'images (401).jpeg', 'images (505).jpeg', 'images (511).jpeg'] ['images (412).jpeg', 'images (219).jpeg', 'images (257).jpeg', 'images (688).jpeg', 'images (571).jpeg', 'image (26).jpeg', 'images (235).jpeg', 'images (192).jpeg', 'images (350).jpeg', 'images (678).jpeg', 'images (659).jpeg', 'images (687).jpeg', 'images (541).jpeg', 'image (17).jpeg', 'images (139).jpeg', 'images (376).jpeg', 'images (378).jpeg', 'images (113).jpeg', 'images (471).jpeg', 'images (332).jpeg', 'images (573).jpeg', 'images (557).jpeg', 'images (265).jpeg', 'images (527).jpeg', 'images (609).jpeg', 'images (542).jpeg', 'images (643).jpeg', 'images (38).jpeg', 'images (329).jpeg', 'images (272).jpeg', 'images (351).jpeg', 'images (201).jpeg', 'images (95).jpeg', 'Image18_593943d4eac89.jpg', 'images (248).jpeg', 'images (469).jpeg', 'images (277).jpeg', 'images (116).jpeg', 'images (92).jpeg', 'images (396).jpeg', 'images (599).jpeg', 'siberian-husky-1.jpg', 'images (275).jpeg', 'images (638).jpeg', 'images (545).jpeg', 'images (321).jpeg', 'images (195).jpeg', 'images (395).jpeg', 'images (91).jpeg', 'images (227).jpeg', 'images (90).jpeg', 'image (27).jpeg', 'images (288).jpeg', 'images (675).jpeg', 'images (340).jpeg', 'images (550).jpeg', 'images (196).jpeg', 'images (679).jpeg', 'images (490).jpeg', 'images (470).jpeg', 'images (686).jpeg', 'images (417).jpeg', 'images (513).jpeg', 'images (180).jpeg', 'images (591).jpeg', 'images (261).jpeg', 'Malamute.jpg', 'images (151).jpeg', 'images (3).jpeg', 'images (282).jpeg'] ['images (225).jpeg', 'images (228).jpeg', 'images (221).jpeg', 'images (448).jpeg', 'images (30).jpeg', 'images (336).jpeg', 'images (219).jpeg', 'images (405).jpeg', 'images (277).jpeg', 'images (265).jpeg', 'images (48).jpeg', 'images (287).jpeg', 'images (78).jpeg', 'images (18).jpeg', 'images (372).jpeg', 'images (38).jpeg', 'images (382).jpeg', 'images (394).jpeg', 'images (421).jpeg', 'images (272).jpeg', 'images (449).jpeg', 'images (145).jpeg', 'images (116).jpeg', 'images (373).jpeg', 'images (149).jpeg', 'images (426).jpeg', 'images (284).jpeg', 'images (258).jpeg', 'images (102).jpeg', 'images.jpeg', 'images (186).jpeg', 'images (350).jpeg', 'images (435).jpeg', 'images (318).jpeg', 'images (289).jpeg', 'images (378).jpeg', 'images (197).jpeg', 'images (15).jpeg', 'images (84).jpeg', 'images (120).jpeg', 'images (268).jpeg', 'images (114).jpeg', 'images (108).jpeg', 'images (237).jpeg', 'images (222).jpeg', 'images (136).jpeg', 'images (188).jpeg', 'images (452).jpeg', 'images (61).jpeg', 'images (314).jpeg', 'images (390).jpeg', 'images (441).jpeg', 'images (413).jpeg', 'images (73).jpeg', 'images (299).jpeg', 'images (157).jpeg', 'images (150).jpeg', 'images (161).jpeg', 'images (76).jpeg', 'images (386).jpeg', 'images (122).jpeg', 'images (311).jpeg', 'images (59).jpeg', 'images (167).jpeg', 'images (359).jpeg', 'images (290).jpeg', 'images (367).jpeg', 'images (342).jpeg', 'images (346).jpeg', 'images (280).jpeg', 'images (401).jpeg', 'images (320).jpeg', 'images (131).jpeg', 'images (187).jpeg', 'images (121).jpeg', 'images (344).jpeg', 'images (173).jpeg', 'images (306).jpeg', 'images (85).jpeg', 'images (263).jpeg', 'images (109).jpeg', 'images (457).jpeg', 'images (396).jpeg', 'images (357).jpeg', 'images (91).jpeg', 'images (56).jpeg', 'images (402).jpeg', 'images (302).jpeg', 'images (115).jpeg', 'images (14).jpeg', 'images (196).jpeg', 'images (275).jpeg', 'images (36).jpeg', 'images (241).jpeg', 'images (234).jpeg', 'images (62).jpeg', 'images (292).jpeg', 'images (208).jpeg'] ['images (11).jpeg', 'images (94).jpeg', 'images (66).jpeg', 'images (370).jpeg', 'images (17).jpeg', 'images (329).jpeg', 'images (218).jpeg', 'images (385).jpeg', 'images (392).jpeg', 'images (164).jpeg', 'images (387).jpeg', 'images (112).jpeg', 'images (363).jpeg', 'images (82).jpeg', 'images (431).jpeg', 'images (250).jpeg', 'images (52).jpeg', 'images (79).jpeg', 'images (86).jpeg', 'images (179).jpeg', 'images (433).jpeg', 'images (419).jpeg', 'images (209).jpeg', 'images (422).jpeg', 'images (398).jpeg', 'images (412).jpeg', 'images (201).jpeg', 'images (389).jpeg', 'images (42).jpeg', 'images (406).jpeg', 'images (50).jpeg', 'images (43).jpeg', 'images (345).jpeg', 'image (10).jpeg', 'image (30).jpeg', 'images (4).jpeg', 'images (2).png', 'image (20).jpeg', 'image (4).jpeg', 'image (23).jpeg', 'image (5).jpeg', 'images (4).png']
# get train, valid and test generators
def get_all_generators(path, image_width, image_height):
my_generator = ImageDataGenerator(rescale=1./255)
train_generator = my_generator.flow_from_directory( path+'/train/', target_size=(image_width, image_height), batch_size=32, class_mode='categorical')
valid_generator = my_generator.flow_from_directory( path+'/valid/', target_size=(image_width, image_height), batch_size=32, class_mode='categorical')
test_generator = my_generator.flow_from_directory( path+'/test/', target_size=(image_width, image_height), batch_size=32, class_mode='categorical')
return train_generator, valid_generator, test_generator
# overfitting the model with early stop
def overfitting_early_stop(train_generator, valid_generator, test_generator, layers,image_width, image_height):
early_stopping = EarlyStopping(monitor='val_accuracy', patience=8, min_delta=0.001, mode='max')
model = Sequential()
j = 0
for i in range(len(layers)):
if i == 0:
model.add( Conv2D( layers[i], ( 3, 3 ), activation = 'relu' , input_shape = (image_width, image_height, 3)))
else:
model.add( Conv2D( layers[i], ( 3, 3 ), activation = 'relu'))
i += 1
model.add( MaxPool2D(2, 2) )
model.add( Flatten() )
model.add( Dense( 5, activation = 'softmax' ) )
model.summary()
model.compile( optimizer = 'adam', loss = 'categorical_crossentropy', metrics = [ 'accuracy',tf.keras.metrics.Precision(), tf.keras.metrics.Recall() ] )
history = model.fit( train_generator, validation_data = valid_generator, epochs = 30, batch_size = 64, callbacks=[early_stopping])
score = model.evaluate_generator(test_generator, verbose=0)
print(f'Test loss: {score[0]} / Test accuracy: {score[1]}')
return history
# plot the learning curve, for accuracy, loss, precision, and recall
def plot_learning_curve(history, key1, key2, ylabel, title):
plt.plot(history.history[key1])
plt.plot(history.history[key2])
plt.ylabel(ylabel)
plt.xlabel('Epoch')
plt.legend(['training data', 'validation data'], loc='lower right')
plt.title(title)
plt.show()
# test the result
def test_early_stop(path, layers,image_width, image_height):
train_generator, valid_generator, test_generator = get_all_generators(path, image_width, image_height)
history = overfitting_early_stop(train_generator, valid_generator, test_generator, layers,image_width, image_height)
plot_learning_curve(history, list(history.history.keys())[0],list(history.history.keys())[4],
list(history.history.keys())[0], 'Learning Curve Loss')
plot_learning_curve(history, list(history.history.keys())[1],list(history.history.keys())[5],
list(history.history.keys())[1], 'Learning Curve Accuracy')
plot_learning_curve(history, list(history.history.keys())[2],list(history.history.keys())[6],
list(history.history.keys())[2][:list(history.history.keys())[2].rfind('_')], 'Learning Curve Precision')
plot_learning_curve(history, list(history.history.keys())[3],list(history.history.keys())[7],
list(history.history.keys())[3][:list(history.history.keys())[3].rfind('_')], 'Learning Curve Recall')
return history
history = test_early_stop(path, [32],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_44" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_96 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ max_pooling2d_81 (MaxPooling (None, 127, 127, 32) 0 _________________________________________________________________ flatten_38 (Flatten) (None, 516128) 0 _________________________________________________________________ dense_70 (Dense) (None, 5) 2580645 ================================================================= Total params: 2,581,541 Trainable params: 2,581,541 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 16s 225ms/step - loss: 10.0567 - accuracy: 0.2638 - precision_38: 0.2190 - recall_38: 0.1209 - val_loss: 1.4989 - val_accuracy: 0.4057 - val_precision_38: 0.6154 - val_recall_38: 0.0603 Epoch 2/30 70/70 [==============================] - 15s 216ms/step - loss: 1.1703 - accuracy: 0.5952 - precision_38: 0.8516 - recall_38: 0.2041 - val_loss: 1.5192 - val_accuracy: 0.4449 - val_precision_38: 0.5312 - val_recall_38: 0.3077 Epoch 3/30 70/70 [==============================] - 15s 219ms/step - loss: 0.5033 - accuracy: 0.8589 - precision_38: 0.9376 - recall_38: 0.7381 - val_loss: 1.5755 - val_accuracy: 0.4646 - val_precision_38: 0.5218 - val_recall_38: 0.3243 Epoch 4/30 70/70 [==============================] - 15s 223ms/step - loss: 0.1727 - accuracy: 0.9746 - precision_38: 0.9921 - recall_38: 0.9445 - val_loss: 1.7510 - val_accuracy: 0.4419 - val_precision_38: 0.4659 - val_recall_38: 0.3605 Epoch 5/30 70/70 [==============================] - 15s 215ms/step - loss: 0.0672 - accuracy: 0.9952 - precision_38: 0.9986 - recall_38: 0.9877 - val_loss: 1.8308 - val_accuracy: 0.4646 - val_precision_38: 0.4926 - val_recall_38: 0.4042 Epoch 6/30 70/70 [==============================] - 15s 220ms/step - loss: 0.0323 - accuracy: 0.9975 - precision_38: 0.9985 - recall_38: 0.9960 - val_loss: 1.8620 - val_accuracy: 0.4646 - val_precision_38: 0.4918 - val_recall_38: 0.4057 Epoch 7/30 70/70 [==============================] - 15s 220ms/step - loss: 0.0301 - accuracy: 0.9967 - precision_38: 0.9967 - recall_38: 0.9967 - val_loss: 1.9788 - val_accuracy: 0.4766 - val_precision_38: 0.4983 - val_recall_38: 0.4480 Epoch 8/30 70/70 [==============================] - 15s 219ms/step - loss: 0.0161 - accuracy: 0.9989 - precision_38: 0.9989 - recall_38: 0.9989 - val_loss: 1.8407 - val_accuracy: 0.4691 - val_precision_38: 0.4991 - val_recall_38: 0.4118 Epoch 9/30 70/70 [==============================] - 15s 218ms/step - loss: 0.0152 - accuracy: 0.9987 - precision_38: 0.9987 - recall_38: 0.9987 - val_loss: 2.0889 - val_accuracy: 0.4600 - val_precision_38: 0.4835 - val_recall_38: 0.4193 Epoch 10/30 70/70 [==============================] - 15s 217ms/step - loss: 0.0175 - accuracy: 0.9985 - precision_38: 0.9985 - recall_38: 0.9985 - val_loss: 2.0493 - val_accuracy: 0.4691 - val_precision_38: 0.4827 - val_recall_38: 0.4208 Epoch 11/30 70/70 [==============================] - 15s 216ms/step - loss: 0.0179 - accuracy: 0.9979 - precision_38: 0.9979 - recall_38: 0.9979 - val_loss: 1.8864 - val_accuracy: 0.4600 - val_precision_38: 0.4772 - val_recall_38: 0.3952 Epoch 12/30 70/70 [==============================] - 15s 219ms/step - loss: 0.0183 - accuracy: 0.9977 - precision_38: 0.9979 - recall_38: 0.9977 - val_loss: 3.0035 - val_accuracy: 0.4072 - val_precision_38: 0.4252 - val_recall_38: 0.3771 Epoch 13/30 70/70 [==============================] - 15s 216ms/step - loss: 0.0990 - accuracy: 0.9836 - precision_38: 0.9906 - recall_38: 0.9761 - val_loss: 2.1560 - val_accuracy: 0.4449 - val_precision_38: 0.4590 - val_recall_38: 0.3967 Epoch 14/30 70/70 [==============================] - 15s 220ms/step - loss: 0.0094 - accuracy: 0.9990 - precision_38: 0.9990 - recall_38: 0.9990 - val_loss: 2.1380 - val_accuracy: 0.4525 - val_precision_38: 0.4884 - val_recall_38: 0.4133 Epoch 15/30 70/70 [==============================] - 15s 217ms/step - loss: 0.0137 - accuracy: 0.9985 - precision_38: 0.9985 - recall_38: 0.9985 - val_loss: 2.1332 - val_accuracy: 0.4525 - val_precision_38: 0.4767 - val_recall_38: 0.4163
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.034569025039673 / Test accuracy: 0.5069444179534912
history = test_early_stop(path, [32,32],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_45" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_97 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ max_pooling2d_82 (MaxPooling (None, 127, 127, 32) 0 _________________________________________________________________ conv2d_98 (Conv2D) (None, 125, 125, 32) 9248 _________________________________________________________________ max_pooling2d_83 (MaxPooling (None, 62, 62, 32) 0 _________________________________________________________________ flatten_39 (Flatten) (None, 123008) 0 _________________________________________________________________ dense_71 (Dense) (None, 5) 615045 ================================================================= Total params: 625,189 Trainable params: 625,189 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 16s 222ms/step - loss: 1.8491 - accuracy: 0.2932 - precision_39: 0.3915 - recall_39: 0.0627 - val_loss: 1.4759 - val_accuracy: 0.4314 - val_precision_39: 0.0000e+00 - val_recall_39: 0.0000e+00 Epoch 2/30 70/70 [==============================] - 16s 227ms/step - loss: 1.3642 - accuracy: 0.4790 - precision_39: 0.6073 - recall_39: 0.1153 - val_loss: 1.3326 - val_accuracy: 0.4872 - val_precision_39: 0.5932 - val_recall_39: 0.2112 Epoch 3/30 70/70 [==============================] - 15s 217ms/step - loss: 1.0542 - accuracy: 0.5976 - precision_39: 0.7264 - recall_39: 0.3704 - val_loss: 1.3274 - val_accuracy: 0.4736 - val_precision_39: 0.6103 - val_recall_39: 0.1795 Epoch 4/30 70/70 [==============================] - 15s 221ms/step - loss: 0.7469 - accuracy: 0.7460 - precision_39: 0.8888 - recall_39: 0.5620 - val_loss: 1.5912 - val_accuracy: 0.4857 - val_precision_39: 0.5264 - val_recall_39: 0.3605 Epoch 5/30 70/70 [==============================] - 15s 217ms/step - loss: 0.3444 - accuracy: 0.9105 - precision_39: 0.9501 - recall_39: 0.8549 - val_loss: 1.7593 - val_accuracy: 0.4691 - val_precision_39: 0.5095 - val_recall_39: 0.4042 Epoch 6/30 70/70 [==============================] - 15s 220ms/step - loss: 0.1684 - accuracy: 0.9547 - precision_39: 0.9771 - recall_39: 0.9367 - val_loss: 2.2179 - val_accuracy: 0.4676 - val_precision_39: 0.4896 - val_recall_39: 0.4268 Epoch 7/30 70/70 [==============================] - 15s 211ms/step - loss: 0.0778 - accuracy: 0.9864 - precision_39: 0.9902 - recall_39: 0.9774 - val_loss: 2.4305 - val_accuracy: 0.4691 - val_precision_39: 0.4958 - val_recall_39: 0.4434 Epoch 8/30 70/70 [==============================] - 15s 221ms/step - loss: 0.0369 - accuracy: 0.9981 - precision_39: 0.9981 - recall_39: 0.9981 - val_loss: 2.6429 - val_accuracy: 0.4615 - val_precision_39: 0.4835 - val_recall_39: 0.4419 Epoch 9/30 70/70 [==============================] - 16s 224ms/step - loss: 0.0308 - accuracy: 0.9966 - precision_39: 0.9966 - recall_39: 0.9964 - val_loss: 2.5846 - val_accuracy: 0.4796 - val_precision_39: 0.4935 - val_recall_39: 0.4585 Epoch 10/30 70/70 [==============================] - 15s 219ms/step - loss: 0.0438 - accuracy: 0.9956 - precision_39: 0.9956 - recall_39: 0.9956 - val_loss: 2.9323 - val_accuracy: 0.4570 - val_precision_39: 0.4647 - val_recall_39: 0.4374
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.853086233139038 / Test accuracy: 0.4756944477558136
history = test_early_stop(path, [32,32,32],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_46" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_99 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ max_pooling2d_84 (MaxPooling (None, 127, 127, 32) 0 _________________________________________________________________ conv2d_100 (Conv2D) (None, 125, 125, 32) 9248 _________________________________________________________________ max_pooling2d_85 (MaxPooling (None, 62, 62, 32) 0 _________________________________________________________________ conv2d_101 (Conv2D) (None, 60, 60, 32) 9248 _________________________________________________________________ max_pooling2d_86 (MaxPooling (None, 30, 30, 32) 0 _________________________________________________________________ flatten_40 (Flatten) (None, 28800) 0 _________________________________________________________________ dense_72 (Dense) (None, 5) 144005 ================================================================= Total params: 163,397 Trainable params: 163,397 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 17s 211ms/step - loss: 1.6471 - accuracy: 0.3145 - precision_40: 0.4923 - recall_40: 0.0404 - val_loss: 1.3400 - val_accuracy: 0.4630 - val_precision_40: 0.6453 - val_recall_40: 0.1674 Epoch 2/30 70/70 [==============================] - 15s 217ms/step - loss: 1.2763 - accuracy: 0.4913 - precision_40: 0.6809 - recall_40: 0.2631 - val_loss: 1.2779 - val_accuracy: 0.4872 - val_precision_40: 0.6232 - val_recall_40: 0.2594 Epoch 3/30 70/70 [==============================] - 15s 219ms/step - loss: 1.0898 - accuracy: 0.5801 - precision_40: 0.7011 - recall_40: 0.3825 - val_loss: 1.2730 - val_accuracy: 0.5249 - val_precision_40: 0.5975 - val_recall_40: 0.2911 Epoch 4/30 70/70 [==============================] - 15s 214ms/step - loss: 0.8685 - accuracy: 0.6786 - precision_40: 0.8034 - recall_40: 0.5299 - val_loss: 1.3717 - val_accuracy: 0.4992 - val_precision_40: 0.5679 - val_recall_40: 0.3786 Epoch 5/30 70/70 [==============================] - 15s 215ms/step - loss: 0.5481 - accuracy: 0.8025 - precision_40: 0.8788 - recall_40: 0.7360 - val_loss: 1.7343 - val_accuracy: 0.4691 - val_precision_40: 0.5054 - val_recall_40: 0.4223 Epoch 6/30 70/70 [==============================] - 15s 221ms/step - loss: 0.3479 - accuracy: 0.8960 - precision_40: 0.9259 - recall_40: 0.8598 - val_loss: 2.0382 - val_accuracy: 0.4827 - val_precision_40: 0.5068 - val_recall_40: 0.4480 Epoch 7/30 70/70 [==============================] - 15s 216ms/step - loss: 0.1829 - accuracy: 0.9517 - precision_40: 0.9659 - recall_40: 0.9377 - val_loss: 2.4233 - val_accuracy: 0.4857 - val_precision_40: 0.4992 - val_recall_40: 0.4661 Epoch 8/30 70/70 [==============================] - 15s 212ms/step - loss: 0.1301 - accuracy: 0.9710 - precision_40: 0.9770 - recall_40: 0.9599 - val_loss: 2.5397 - val_accuracy: 0.4842 - val_precision_40: 0.4961 - val_recall_40: 0.4736 Epoch 9/30 70/70 [==============================] - 15s 215ms/step - loss: 0.0578 - accuracy: 0.9874 - precision_40: 0.9912 - recall_40: 0.9848 - val_loss: 2.9745 - val_accuracy: 0.4842 - val_precision_40: 0.4856 - val_recall_40: 0.4585 Epoch 10/30 70/70 [==============================] - 15s 214ms/step - loss: 0.0626 - accuracy: 0.9824 - precision_40: 0.9852 - recall_40: 0.9789 - val_loss: 3.3354 - val_accuracy: 0.5023 - val_precision_40: 0.5108 - val_recall_40: 0.4977 Epoch 11/30 70/70 [==============================] - 15s 215ms/step - loss: 0.0575 - accuracy: 0.9890 - precision_40: 0.9907 - recall_40: 0.9885 - val_loss: 3.3886 - val_accuracy: 0.4992 - val_precision_40: 0.5023 - val_recall_40: 0.4932
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.1409497261047363 / Test accuracy: 0.5104166865348816
history = test_early_stop(path, [32,32,32,32],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_47" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_102 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ max_pooling2d_87 (MaxPooling (None, 127, 127, 32) 0 _________________________________________________________________ conv2d_103 (Conv2D) (None, 125, 125, 32) 9248 _________________________________________________________________ max_pooling2d_88 (MaxPooling (None, 62, 62, 32) 0 _________________________________________________________________ conv2d_104 (Conv2D) (None, 60, 60, 32) 9248 _________________________________________________________________ max_pooling2d_89 (MaxPooling (None, 30, 30, 32) 0 _________________________________________________________________ conv2d_105 (Conv2D) (None, 28, 28, 32) 9248 _________________________________________________________________ max_pooling2d_90 (MaxPooling (None, 14, 14, 32) 0 _________________________________________________________________ flatten_41 (Flatten) (None, 6272) 0 _________________________________________________________________ dense_73 (Dense) (None, 5) 31365 ================================================================= Total params: 60,005 Trainable params: 60,005 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 16s 215ms/step - loss: 1.6030 - accuracy: 0.2389 - precision_41: 0.0563 - recall_41: 2.5600e-05 - val_loss: 1.5232 - val_accuracy: 0.3650 - val_precision_41: 0.8750 - val_recall_41: 0.0106 Epoch 2/30 70/70 [==============================] - 15s 219ms/step - loss: 1.5070 - accuracy: 0.3557 - precision_41: 0.4902 - recall_41: 0.0297 - val_loss: 1.3734 - val_accuracy: 0.4495 - val_precision_41: 0.5777 - val_recall_41: 0.1795 Epoch 3/30 70/70 [==============================] - 15s 213ms/step - loss: 1.3019 - accuracy: 0.4913 - precision_41: 0.5943 - recall_41: 0.1894 - val_loss: 1.3105 - val_accuracy: 0.4872 - val_precision_41: 0.6310 - val_recall_41: 0.2579 Epoch 4/30 70/70 [==============================] - 15s 207ms/step - loss: 1.1184 - accuracy: 0.5567 - precision_41: 0.6930 - recall_41: 0.3584 - val_loss: 1.2354 - val_accuracy: 0.5460 - val_precision_41: 0.6045 - val_recall_41: 0.3228 Epoch 5/30 70/70 [==============================] - 15s 210ms/step - loss: 1.0007 - accuracy: 0.6040 - precision_41: 0.7276 - recall_41: 0.4446 - val_loss: 1.2534 - val_accuracy: 0.5400 - val_precision_41: 0.6061 - val_recall_41: 0.3876 Epoch 6/30 70/70 [==============================] - 15s 215ms/step - loss: 0.9068 - accuracy: 0.6568 - precision_41: 0.7550 - recall_41: 0.5073 - val_loss: 1.3239 - val_accuracy: 0.5143 - val_precision_41: 0.5905 - val_recall_41: 0.4329 Epoch 7/30 70/70 [==============================] - 15s 212ms/step - loss: 0.7084 - accuracy: 0.7405 - precision_41: 0.8156 - recall_41: 0.6384 - val_loss: 1.3628 - val_accuracy: 0.5370 - val_precision_41: 0.5981 - val_recall_41: 0.4646 Epoch 8/30 70/70 [==============================] - 15s 219ms/step - loss: 0.5538 - accuracy: 0.8010 - precision_41: 0.8683 - recall_41: 0.7431 - val_loss: 1.4519 - val_accuracy: 0.5249 - val_precision_41: 0.5714 - val_recall_41: 0.4525 Epoch 9/30 70/70 [==============================] - 15s 218ms/step - loss: 0.4388 - accuracy: 0.8496 - precision_41: 0.8937 - recall_41: 0.7943 - val_loss: 1.7123 - val_accuracy: 0.5068 - val_precision_41: 0.5278 - val_recall_41: 0.4585 Epoch 10/30 70/70 [==============================] - 15s 217ms/step - loss: 0.3031 - accuracy: 0.8994 - precision_41: 0.9242 - recall_41: 0.8739 - val_loss: 2.2390 - val_accuracy: 0.5098 - val_precision_41: 0.5242 - val_recall_41: 0.4902 Epoch 11/30 70/70 [==============================] - 15s 213ms/step - loss: 0.1807 - accuracy: 0.9415 - precision_41: 0.9551 - recall_41: 0.9291 - val_loss: 2.2428 - val_accuracy: 0.5008 - val_precision_41: 0.5241 - val_recall_41: 0.4751 Epoch 12/30 70/70 [==============================] - 15s 211ms/step - loss: 0.1162 - accuracy: 0.9729 - precision_41: 0.9778 - recall_41: 0.9672 - val_loss: 2.6741 - val_accuracy: 0.5264 - val_precision_41: 0.5365 - val_recall_41: 0.5098
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.281705141067505 / Test accuracy: 0.5486111044883728
history = test_early_stop(path, [32,32,32,32,32],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_48" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_106 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ max_pooling2d_91 (MaxPooling (None, 127, 127, 32) 0 _________________________________________________________________ conv2d_107 (Conv2D) (None, 125, 125, 32) 9248 _________________________________________________________________ max_pooling2d_92 (MaxPooling (None, 62, 62, 32) 0 _________________________________________________________________ conv2d_108 (Conv2D) (None, 60, 60, 32) 9248 _________________________________________________________________ max_pooling2d_93 (MaxPooling (None, 30, 30, 32) 0 _________________________________________________________________ conv2d_109 (Conv2D) (None, 28, 28, 32) 9248 _________________________________________________________________ max_pooling2d_94 (MaxPooling (None, 14, 14, 32) 0 _________________________________________________________________ conv2d_110 (Conv2D) (None, 12, 12, 32) 9248 _________________________________________________________________ max_pooling2d_95 (MaxPooling (None, 6, 6, 32) 0 _________________________________________________________________ flatten_42 (Flatten) (None, 1152) 0 _________________________________________________________________ dense_74 (Dense) (None, 5) 5765 ================================================================= Total params: 43,653 Trainable params: 43,653 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 16s 217ms/step - loss: 1.5579 - accuracy: 0.2868 - precision_42: 0.3085 - recall_42: 0.0229 - val_loss: 1.4199 - val_accuracy: 0.4087 - val_precision_42: 0.7000 - val_recall_42: 0.1056 Epoch 2/30 70/70 [==============================] - 15s 210ms/step - loss: 1.4163 - accuracy: 0.4235 - precision_42: 0.5766 - recall_42: 0.1208 - val_loss: 1.3366 - val_accuracy: 0.4917 - val_precision_42: 0.6195 - val_recall_42: 0.2112 Epoch 3/30 70/70 [==============================] - 15s 215ms/step - loss: 1.2748 - accuracy: 0.5154 - precision_42: 0.6657 - recall_42: 0.2726 - val_loss: 1.2835 - val_accuracy: 0.5083 - val_precision_42: 0.6367 - val_recall_42: 0.2459 Epoch 4/30 70/70 [==============================] - 15s 209ms/step - loss: 1.2271 - accuracy: 0.5274 - precision_42: 0.6698 - recall_42: 0.2916 - val_loss: 1.2053 - val_accuracy: 0.5430 - val_precision_42: 0.6184 - val_recall_42: 0.3544 Epoch 5/30 70/70 [==============================] - 15s 208ms/step - loss: 1.1296 - accuracy: 0.5679 - precision_42: 0.6929 - recall_42: 0.3771 - val_loss: 1.2428 - val_accuracy: 0.5370 - val_precision_42: 0.6163 - val_recall_42: 0.4118 Epoch 6/30 70/70 [==============================] - 15s 211ms/step - loss: 1.0779 - accuracy: 0.5852 - precision_42: 0.6871 - recall_42: 0.4139 - val_loss: 1.1541 - val_accuracy: 0.5641 - val_precision_42: 0.6640 - val_recall_42: 0.3816 Epoch 7/30 70/70 [==============================] - 15s 214ms/step - loss: 1.0604 - accuracy: 0.5882 - precision_42: 0.7021 - recall_42: 0.4283 - val_loss: 1.1581 - val_accuracy: 0.5596 - val_precision_42: 0.6650 - val_recall_42: 0.4103 Epoch 8/30 70/70 [==============================] - 15s 222ms/step - loss: 0.9967 - accuracy: 0.6148 - precision_42: 0.7268 - recall_42: 0.4605 - val_loss: 1.2365 - val_accuracy: 0.5324 - val_precision_42: 0.6214 - val_recall_42: 0.3937 Epoch 9/30 70/70 [==============================] - 15s 215ms/step - loss: 0.9642 - accuracy: 0.6313 - precision_42: 0.7594 - recall_42: 0.4787 - val_loss: 1.1864 - val_accuracy: 0.5309 - val_precision_42: 0.6427 - val_recall_42: 0.3906 Epoch 10/30 70/70 [==============================] - 15s 213ms/step - loss: 0.8217 - accuracy: 0.6844 - precision_42: 0.7826 - recall_42: 0.5689 - val_loss: 1.1171 - val_accuracy: 0.5641 - val_precision_42: 0.6560 - val_recall_42: 0.4344 Epoch 11/30 70/70 [==============================] - 14s 207ms/step - loss: 0.7937 - accuracy: 0.7068 - precision_42: 0.7924 - recall_42: 0.5980 - val_loss: 1.1159 - val_accuracy: 0.6169 - val_precision_42: 0.6771 - val_recall_42: 0.4902 Epoch 12/30 70/70 [==============================] - 15s 214ms/step - loss: 0.6892 - accuracy: 0.7519 - precision_42: 0.8284 - recall_42: 0.6718 - val_loss: 1.1656 - val_accuracy: 0.6003 - val_precision_42: 0.6533 - val_recall_42: 0.5400 Epoch 13/30 70/70 [==============================] - 15s 213ms/step - loss: 0.6405 - accuracy: 0.7625 - precision_42: 0.8270 - recall_42: 0.7005 - val_loss: 1.1900 - val_accuracy: 0.5747 - val_precision_42: 0.6335 - val_recall_42: 0.5083 Epoch 14/30 70/70 [==============================] - 15s 213ms/step - loss: 0.5637 - accuracy: 0.7982 - precision_42: 0.8483 - recall_42: 0.7387 - val_loss: 1.2790 - val_accuracy: 0.5701 - val_precision_42: 0.6104 - val_recall_42: 0.4962 Epoch 15/30 70/70 [==============================] - 15s 212ms/step - loss: 0.5423 - accuracy: 0.7978 - precision_42: 0.8518 - recall_42: 0.7539 - val_loss: 1.3136 - val_accuracy: 0.5762 - val_precision_42: 0.6076 - val_recall_42: 0.5279 Epoch 16/30 70/70 [==============================] - 15s 215ms/step - loss: 0.4850 - accuracy: 0.8171 - precision_42: 0.8596 - recall_42: 0.7754 - val_loss: 1.4201 - val_accuracy: 0.5852 - val_precision_42: 0.6192 - val_recall_42: 0.5445 Epoch 17/30 70/70 [==============================] - 15s 210ms/step - loss: 0.3804 - accuracy: 0.8670 - precision_42: 0.8962 - recall_42: 0.8277 - val_loss: 1.5722 - val_accuracy: 0.5837 - val_precision_42: 0.6093 - val_recall_42: 0.5505 Epoch 18/30 70/70 [==============================] - 15s 211ms/step - loss: 0.3262 - accuracy: 0.8852 - precision_42: 0.9166 - recall_42: 0.8669 - val_loss: 1.8088 - val_accuracy: 0.5520 - val_precision_42: 0.5854 - val_recall_42: 0.5324 Epoch 19/30 70/70 [==============================] - 15s 212ms/step - loss: 0.3269 - accuracy: 0.8752 - precision_42: 0.9017 - recall_42: 0.8462 - val_loss: 1.7108 - val_accuracy: 0.5490 - val_precision_42: 0.5660 - val_recall_42: 0.5173
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 1.6675474643707275 / Test accuracy: 0.5729166865348816
history = test_early_stop(path, [32,32,32,32,32,32],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_49" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_111 (Conv2D) (None, 254, 254, 32) 896 _________________________________________________________________ max_pooling2d_96 (MaxPooling (None, 127, 127, 32) 0 _________________________________________________________________ conv2d_112 (Conv2D) (None, 125, 125, 32) 9248 _________________________________________________________________ max_pooling2d_97 (MaxPooling (None, 62, 62, 32) 0 _________________________________________________________________ conv2d_113 (Conv2D) (None, 60, 60, 32) 9248 _________________________________________________________________ max_pooling2d_98 (MaxPooling (None, 30, 30, 32) 0 _________________________________________________________________ conv2d_114 (Conv2D) (None, 28, 28, 32) 9248 _________________________________________________________________ max_pooling2d_99 (MaxPooling (None, 14, 14, 32) 0 _________________________________________________________________ conv2d_115 (Conv2D) (None, 12, 12, 32) 9248 _________________________________________________________________ max_pooling2d_100 (MaxPoolin (None, 6, 6, 32) 0 _________________________________________________________________ conv2d_116 (Conv2D) (None, 4, 4, 32) 9248 _________________________________________________________________ max_pooling2d_101 (MaxPoolin (None, 2, 2, 32) 0 _________________________________________________________________ flatten_43 (Flatten) (None, 128) 0 _________________________________________________________________ dense_75 (Dense) (None, 5) 645 ================================================================= Total params: 47,781 Trainable params: 47,781 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 16s 217ms/step - loss: 1.5848 - accuracy: 0.2706 - precision_43: 0.1310 - recall_43: 0.0011 - val_loss: 1.4670 - val_accuracy: 0.3997 - val_precision_43: 0.6304 - val_recall_43: 0.0437 Epoch 2/30 70/70 [==============================] - 15s 209ms/step - loss: 1.4634 - accuracy: 0.3810 - precision_43: 0.6289 - recall_43: 0.0837 - val_loss: 1.4588 - val_accuracy: 0.3997 - val_precision_43: 0.5139 - val_recall_43: 0.1674 Epoch 3/30 70/70 [==============================] - 15s 212ms/step - loss: 1.3683 - accuracy: 0.4401 - precision_43: 0.5940 - recall_43: 0.1820 - val_loss: 1.4051 - val_accuracy: 0.4495 - val_precision_43: 0.5739 - val_recall_43: 0.0995 Epoch 4/30 70/70 [==============================] - 15s 209ms/step - loss: 1.3523 - accuracy: 0.4796 - precision_43: 0.6126 - recall_43: 0.1442 - val_loss: 1.3607 - val_accuracy: 0.4661 - val_precision_43: 0.6357 - val_recall_43: 0.1342 Epoch 5/30 70/70 [==============================] - 15s 212ms/step - loss: 1.3216 - accuracy: 0.4798 - precision_43: 0.6324 - recall_43: 0.2091 - val_loss: 1.2787 - val_accuracy: 0.5113 - val_precision_43: 0.6633 - val_recall_43: 0.1991 Epoch 6/30 70/70 [==============================] - 15s 214ms/step - loss: 1.2421 - accuracy: 0.5120 - precision_43: 0.6617 - recall_43: 0.2849 - val_loss: 1.2782 - val_accuracy: 0.5339 - val_precision_43: 0.6346 - val_recall_43: 0.2881 Epoch 7/30 70/70 [==============================] - 15s 211ms/step - loss: 1.2062 - accuracy: 0.5318 - precision_43: 0.6550 - recall_43: 0.3373 - val_loss: 1.2150 - val_accuracy: 0.5309 - val_precision_43: 0.5947 - val_recall_43: 0.4027 Epoch 8/30 70/70 [==============================] - 15s 208ms/step - loss: 1.1291 - accuracy: 0.5721 - precision_43: 0.6830 - recall_43: 0.4046 - val_loss: 1.1909 - val_accuracy: 0.5490 - val_precision_43: 0.6509 - val_recall_43: 0.3937 Epoch 9/30 70/70 [==============================] - 15s 209ms/step - loss: 1.0820 - accuracy: 0.5742 - precision_43: 0.7086 - recall_43: 0.3945 - val_loss: 1.2395 - val_accuracy: 0.5566 - val_precision_43: 0.6165 - val_recall_43: 0.3952 Epoch 10/30 70/70 [==============================] - 15s 210ms/step - loss: 1.0191 - accuracy: 0.6294 - precision_43: 0.7242 - recall_43: 0.4515 - val_loss: 1.1510 - val_accuracy: 0.5505 - val_precision_43: 0.6537 - val_recall_43: 0.4299 Epoch 11/30 70/70 [==============================] - 15s 210ms/step - loss: 0.9423 - accuracy: 0.6245 - precision_43: 0.7324 - recall_43: 0.5035 - val_loss: 1.1555 - val_accuracy: 0.5551 - val_precision_43: 0.6486 - val_recall_43: 0.4344 Epoch 12/30 70/70 [==============================] - 15s 214ms/step - loss: 0.9231 - accuracy: 0.6415 - precision_43: 0.7411 - recall_43: 0.5210 - val_loss: 1.1805 - val_accuracy: 0.5671 - val_precision_43: 0.6369 - val_recall_43: 0.4947 Epoch 13/30 70/70 [==============================] - 15s 208ms/step - loss: 0.8745 - accuracy: 0.6660 - precision_43: 0.7581 - recall_43: 0.5511 - val_loss: 1.1430 - val_accuracy: 0.5897 - val_precision_43: 0.6673 - val_recall_43: 0.4932 Epoch 14/30 70/70 [==============================] - 14s 205ms/step - loss: 0.7562 - accuracy: 0.7176 - precision_43: 0.7912 - recall_43: 0.6273 - val_loss: 1.1488 - val_accuracy: 0.5882 - val_precision_43: 0.6461 - val_recall_43: 0.4736 Epoch 15/30 70/70 [==============================] - 15s 207ms/step - loss: 0.6845 - accuracy: 0.7470 - precision_43: 0.8191 - recall_43: 0.6722 - val_loss: 1.1403 - val_accuracy: 0.5943 - val_precision_43: 0.6680 - val_recall_43: 0.4977 Epoch 16/30 70/70 [==============================] - 14s 208ms/step - loss: 0.5981 - accuracy: 0.7809 - precision_43: 0.8423 - recall_43: 0.7190 - val_loss: 1.2649 - val_accuracy: 0.5596 - val_precision_43: 0.6152 - val_recall_43: 0.4630 Epoch 17/30 70/70 [==============================] - 14s 208ms/step - loss: 0.6294 - accuracy: 0.7632 - precision_43: 0.8362 - recall_43: 0.6949 - val_loss: 1.1990 - val_accuracy: 0.5837 - val_precision_43: 0.6420 - val_recall_43: 0.5113 Epoch 18/30 70/70 [==============================] - 15s 216ms/step - loss: 0.4767 - accuracy: 0.8260 - precision_43: 0.8759 - recall_43: 0.7763 - val_loss: 1.3023 - val_accuracy: 0.5611 - val_precision_43: 0.6164 - val_recall_43: 0.4992 Epoch 19/30 70/70 [==============================] - 15s 211ms/step - loss: 0.4105 - accuracy: 0.8605 - precision_43: 0.9014 - recall_43: 0.8196 - val_loss: 1.5103 - val_accuracy: 0.5792 - val_precision_43: 0.6034 - val_recall_43: 0.5415 Epoch 20/30 70/70 [==============================] - 15s 214ms/step - loss: 0.3655 - accuracy: 0.8675 - precision_43: 0.8950 - recall_43: 0.8372 - val_loss: 1.5157 - val_accuracy: 0.5928 - val_precision_43: 0.6235 - val_recall_43: 0.5596 Epoch 21/30 70/70 [==============================] - 15s 213ms/step - loss: 0.2653 - accuracy: 0.9154 - precision_43: 0.9293 - recall_43: 0.8936 - val_loss: 1.5692 - val_accuracy: 0.5867 - val_precision_43: 0.6113 - val_recall_43: 0.5551 Epoch 22/30 70/70 [==============================] - 15s 213ms/step - loss: 0.2556 - accuracy: 0.9098 - precision_43: 0.9299 - recall_43: 0.8935 - val_loss: 1.8120 - val_accuracy: 0.5520 - val_precision_43: 0.5661 - val_recall_43: 0.5234 Epoch 23/30 70/70 [==============================] - 15s 211ms/step - loss: 0.3170 - accuracy: 0.8876 - precision_43: 0.9118 - recall_43: 0.8693 - val_loss: 1.7262 - val_accuracy: 0.5852 - val_precision_43: 0.6003 - val_recall_43: 0.5686
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 1.61752188205719 / Test accuracy: 0.6076388955116272
# history = test_early_stop(path, [32,32,32,32,32,32,32],image_width, image_height)
# report error since too large system
history = test_early_stop(path, [16],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_34" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_66 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ max_pooling2d_22 (MaxPooling (None, 127, 127, 16) 0 _________________________________________________________________ flatten_33 (Flatten) (None, 258064) 0 _________________________________________________________________ dense_49 (Dense) (None, 5) 1290325 ================================================================= Total params: 1,290,773 Trainable params: 1,290,773 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 549s 8s/step - loss: 14.2754 - accuracy: 0.2504 - precision_33: 0.2440 - recall_33: 0.1915 - val_loss: 1.4855 - val_accuracy: 0.3937 - val_precision_33: 0.4407 - val_recall_33: 0.0392 Epoch 2/30 70/70 [==============================] - 12s 173ms/step - loss: 1.2336 - accuracy: 0.5426 - precision_33: 0.7186 - recall_33: 0.1890 - val_loss: 1.4113 - val_accuracy: 0.4480 - val_precision_33: 0.5671 - val_recall_33: 0.2549 Epoch 3/30 70/70 [==============================] - 12s 167ms/step - loss: 0.6221 - accuracy: 0.8082 - precision_33: 0.9184 - recall_33: 0.6583 - val_loss: 1.4611 - val_accuracy: 0.4510 - val_precision_33: 0.5113 - val_recall_33: 0.3062 Epoch 4/30 70/70 [==============================] - 12s 173ms/step - loss: 0.2299 - accuracy: 0.9591 - precision_33: 0.9893 - recall_33: 0.9131 - val_loss: 1.8304 - val_accuracy: 0.4615 - val_precision_33: 0.5216 - val_recall_33: 0.4012 Epoch 5/30 70/70 [==============================] - 12s 173ms/step - loss: 0.1087 - accuracy: 0.9890 - precision_33: 0.9937 - recall_33: 0.9783 - val_loss: 1.8345 - val_accuracy: 0.4781 - val_precision_33: 0.5057 - val_recall_33: 0.4042 Epoch 6/30 70/70 [==============================] - 12s 172ms/step - loss: 0.0364 - accuracy: 0.9987 - precision_33: 0.9987 - recall_33: 0.9972 - val_loss: 2.0806 - val_accuracy: 0.4600 - val_precision_33: 0.4815 - val_recall_33: 0.4133 Epoch 7/30 70/70 [==============================] - 12s 177ms/step - loss: 0.0247 - accuracy: 0.9996 - precision_33: 0.9996 - recall_33: 0.9992 - val_loss: 1.8900 - val_accuracy: 0.4827 - val_precision_33: 0.5026 - val_recall_33: 0.4329 Epoch 8/30 70/70 [==============================] - 12s 171ms/step - loss: 0.0213 - accuracy: 0.9985 - precision_33: 0.9985 - recall_33: 0.9985 - val_loss: 2.0644 - val_accuracy: 0.4600 - val_precision_33: 0.4877 - val_recall_33: 0.4178 Epoch 9/30 70/70 [==============================] - 12s 172ms/step - loss: 0.0185 - accuracy: 0.9989 - precision_33: 0.9989 - recall_33: 0.9989 - val_loss: 2.0212 - val_accuracy: 0.4766 - val_precision_33: 0.5009 - val_recall_33: 0.4238 Epoch 10/30 70/70 [==============================] - 12s 171ms/step - loss: 0.0155 - accuracy: 0.9989 - precision_33: 0.9989 - recall_33: 0.9989 - val_loss: 2.0170 - val_accuracy: 0.4827 - val_precision_33: 0.5096 - val_recall_33: 0.4419 Epoch 11/30 70/70 [==============================] - 12s 172ms/step - loss: 0.0225 - accuracy: 0.9956 - precision_33: 0.9956 - recall_33: 0.9956 - val_loss: 2.0228 - val_accuracy: 0.4827 - val_precision_33: 0.5061 - val_recall_33: 0.4404 Epoch 12/30 70/70 [==============================] - 12s 171ms/step - loss: 0.0170 - accuracy: 0.9983 - precision_33: 0.9983 - recall_33: 0.9983 - val_loss: 2.1449 - val_accuracy: 0.4706 - val_precision_33: 0.4812 - val_recall_33: 0.4238 Epoch 13/30 70/70 [==============================] - 12s 171ms/step - loss: 0.0134 - accuracy: 0.9987 - precision_33: 0.9987 - recall_33: 0.9987 - val_loss: 2.1273 - val_accuracy: 0.4781 - val_precision_33: 0.5042 - val_recall_33: 0.4495 Epoch 14/30 70/70 [==============================] - 12s 171ms/step - loss: 0.0107 - accuracy: 0.9985 - precision_33: 0.9985 - recall_33: 0.9985 - val_loss: 2.2960 - val_accuracy: 0.4510 - val_precision_33: 0.4556 - val_recall_33: 0.4027 Epoch 15/30 70/70 [==============================] - 12s 170ms/step - loss: 0.0268 - accuracy: 0.9960 - precision_33: 0.9960 - recall_33: 0.9960 - val_loss: 2.1290 - val_accuracy: 0.4796 - val_precision_33: 0.4949 - val_recall_33: 0.4404
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.035675287246704 / Test accuracy: 0.5208333134651184
history = test_early_stop(path, [16,16],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_52" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_125 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ max_pooling2d_109 (MaxPoolin (None, 127, 127, 16) 0 _________________________________________________________________ conv2d_126 (Conv2D) (None, 125, 125, 16) 2320 _________________________________________________________________ max_pooling2d_110 (MaxPoolin (None, 62, 62, 16) 0 _________________________________________________________________ flatten_45 (Flatten) (None, 61504) 0 _________________________________________________________________ dense_77 (Dense) (None, 5) 307525 ================================================================= Total params: 310,293 Trainable params: 310,293 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 17s 232ms/step - loss: 2.6801 - accuracy: 0.2540 - precision_45: 0.2232 - recall_45: 0.0538 - val_loss: 1.4740 - val_accuracy: 0.3876 - val_precision_45: 0.5596 - val_recall_45: 0.0920 Epoch 2/30 70/70 [==============================] - 15s 220ms/step - loss: 1.3445 - accuracy: 0.4699 - precision_45: 0.6740 - recall_45: 0.1298 - val_loss: 1.3934 - val_accuracy: 0.4419 - val_precision_45: 0.5647 - val_recall_45: 0.2172 Epoch 3/30 70/70 [==============================] - 15s 214ms/step - loss: 1.1346 - accuracy: 0.5691 - precision_45: 0.7500 - recall_45: 0.3006 - val_loss: 1.3753 - val_accuracy: 0.4706 - val_precision_45: 0.5992 - val_recall_45: 0.2368 Epoch 4/30 70/70 [==============================] - 15s 216ms/step - loss: 0.8214 - accuracy: 0.7285 - precision_45: 0.8867 - recall_45: 0.5287 - val_loss: 1.4928 - val_accuracy: 0.4133 - val_precision_45: 0.5014 - val_recall_45: 0.2670 Epoch 5/30 70/70 [==============================] - 15s 216ms/step - loss: 0.4860 - accuracy: 0.8742 - precision_45: 0.9399 - recall_45: 0.7667 - val_loss: 1.6567 - val_accuracy: 0.4600 - val_precision_45: 0.4980 - val_recall_45: 0.3710 Epoch 6/30 70/70 [==============================] - 15s 218ms/step - loss: 0.2283 - accuracy: 0.9561 - precision_45: 0.9814 - recall_45: 0.9125 - val_loss: 1.9039 - val_accuracy: 0.4449 - val_precision_45: 0.4823 - val_recall_45: 0.3906 Epoch 7/30 70/70 [==============================] - 15s 218ms/step - loss: 0.1141 - accuracy: 0.9842 - precision_45: 0.9897 - recall_45: 0.9781 - val_loss: 2.3265 - val_accuracy: 0.4374 - val_precision_45: 0.4561 - val_recall_45: 0.4072 Epoch 8/30 70/70 [==============================] - 15s 215ms/step - loss: 0.0491 - accuracy: 0.9964 - precision_45: 0.9973 - recall_45: 0.9945 - val_loss: 2.2387 - val_accuracy: 0.4434 - val_precision_45: 0.4732 - val_recall_45: 0.4133 Epoch 9/30 70/70 [==============================] - 15s 217ms/step - loss: 0.0511 - accuracy: 0.9971 - precision_45: 0.9971 - recall_45: 0.9971 - val_loss: 2.4129 - val_accuracy: 0.4419 - val_precision_45: 0.4608 - val_recall_45: 0.4163 Epoch 10/30 70/70 [==============================] - 15s 219ms/step - loss: 0.0154 - accuracy: 0.9991 - precision_45: 0.9991 - recall_45: 0.9990 - val_loss: 2.4954 - val_accuracy: 0.4344 - val_precision_45: 0.4502 - val_recall_45: 0.4163 Epoch 11/30 70/70 [==============================] - 15s 221ms/step - loss: 0.0199 - accuracy: 0.9987 - precision_45: 0.9988 - recall_45: 0.9987 - val_loss: 2.6187 - val_accuracy: 0.4268 - val_precision_45: 0.4457 - val_recall_45: 0.4027
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.2802600860595703 / Test accuracy: 0.4895833432674408
history = test_early_stop(path, [16,16,16],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_53" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_127 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ max_pooling2d_111 (MaxPoolin (None, 127, 127, 16) 0 _________________________________________________________________ conv2d_128 (Conv2D) (None, 125, 125, 16) 2320 _________________________________________________________________ max_pooling2d_112 (MaxPoolin (None, 62, 62, 16) 0 _________________________________________________________________ conv2d_129 (Conv2D) (None, 60, 60, 16) 2320 _________________________________________________________________ max_pooling2d_113 (MaxPoolin (None, 30, 30, 16) 0 _________________________________________________________________ flatten_46 (Flatten) (None, 14400) 0 _________________________________________________________________ dense_78 (Dense) (None, 5) 72005 ================================================================= Total params: 77,093 Trainable params: 77,093 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 16s 217ms/step - loss: 1.5709 - accuracy: 0.2953 - precision_46: 0.4163 - recall_46: 0.0134 - val_loss: 1.4370 - val_accuracy: 0.3922 - val_precision_46: 0.5686 - val_recall_46: 0.1750 Epoch 2/30 70/70 [==============================] - 15s 215ms/step - loss: 1.3190 - accuracy: 0.4661 - precision_46: 0.6612 - recall_46: 0.1958 - val_loss: 1.3287 - val_accuracy: 0.4902 - val_precision_46: 0.6407 - val_recall_46: 0.1614 Epoch 3/30 70/70 [==============================] - 15s 220ms/step - loss: 1.2114 - accuracy: 0.5221 - precision_46: 0.6957 - recall_46: 0.2614 - val_loss: 1.3053 - val_accuracy: 0.4827 - val_precision_46: 0.5836 - val_recall_46: 0.2790 Epoch 4/30 70/70 [==============================] - 15s 213ms/step - loss: 0.9812 - accuracy: 0.6159 - precision_46: 0.7479 - recall_46: 0.4447 - val_loss: 1.4322 - val_accuracy: 0.4600 - val_precision_46: 0.5457 - val_recall_46: 0.3062 Epoch 5/30 70/70 [==============================] - 15s 218ms/step - loss: 0.8145 - accuracy: 0.7016 - precision_46: 0.8321 - recall_46: 0.5471 - val_loss: 1.3606 - val_accuracy: 0.4917 - val_precision_46: 0.5613 - val_recall_46: 0.3454 Epoch 6/30 70/70 [==============================] - 15s 209ms/step - loss: 0.6100 - accuracy: 0.8012 - precision_46: 0.8824 - recall_46: 0.6856 - val_loss: 1.6019 - val_accuracy: 0.4872 - val_precision_46: 0.5268 - val_recall_46: 0.4148 Epoch 7/30 70/70 [==============================] - 15s 212ms/step - loss: 0.4195 - accuracy: 0.8649 - precision_46: 0.9116 - recall_46: 0.8014 - val_loss: 1.9120 - val_accuracy: 0.4615 - val_precision_46: 0.4956 - val_recall_46: 0.4238 Epoch 8/30 70/70 [==============================] - 15s 213ms/step - loss: 0.2419 - accuracy: 0.9347 - precision_46: 0.9604 - recall_46: 0.9013 - val_loss: 2.1049 - val_accuracy: 0.4661 - val_precision_46: 0.4914 - val_recall_46: 0.4329 Epoch 9/30 70/70 [==============================] - 15s 214ms/step - loss: 0.1504 - accuracy: 0.9685 - precision_46: 0.9767 - recall_46: 0.9582 - val_loss: 2.3281 - val_accuracy: 0.4691 - val_precision_46: 0.4814 - val_recall_46: 0.4495 Epoch 10/30 70/70 [==============================] - 15s 211ms/step - loss: 0.0923 - accuracy: 0.9796 - precision_46: 0.9827 - recall_46: 0.9735 - val_loss: 2.7228 - val_accuracy: 0.4721 - val_precision_46: 0.4829 - val_recall_46: 0.4465 Epoch 11/30 70/70 [==============================] - 15s 210ms/step - loss: 0.0472 - accuracy: 0.9964 - precision_46: 0.9965 - recall_46: 0.9948 - val_loss: 2.8188 - val_accuracy: 0.4706 - val_precision_46: 0.4831 - val_recall_46: 0.4525 Epoch 12/30 70/70 [==============================] - 15s 206ms/step - loss: 0.0588 - accuracy: 0.9915 - precision_46: 0.9915 - recall_46: 0.9901 - val_loss: 3.2129 - val_accuracy: 0.4570 - val_precision_46: 0.4635 - val_recall_46: 0.4404 Epoch 13/30 70/70 [==============================] - 15s 211ms/step - loss: 0.0263 - accuracy: 0.9970 - precision_46: 0.9975 - recall_46: 0.9969 - val_loss: 3.0655 - val_accuracy: 0.4600 - val_precision_46: 0.4736 - val_recall_46: 0.4465
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.018557548522949 / Test accuracy: 0.5
history = test_early_stop(path, [16,16,16,16],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_54" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_130 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ max_pooling2d_114 (MaxPoolin (None, 127, 127, 16) 0 _________________________________________________________________ conv2d_131 (Conv2D) (None, 125, 125, 16) 2320 _________________________________________________________________ max_pooling2d_115 (MaxPoolin (None, 62, 62, 16) 0 _________________________________________________________________ conv2d_132 (Conv2D) (None, 60, 60, 16) 2320 _________________________________________________________________ max_pooling2d_116 (MaxPoolin (None, 30, 30, 16) 0 _________________________________________________________________ conv2d_133 (Conv2D) (None, 28, 28, 16) 2320 _________________________________________________________________ max_pooling2d_117 (MaxPoolin (None, 14, 14, 16) 0 _________________________________________________________________ flatten_47 (Flatten) (None, 3136) 0 _________________________________________________________________ dense_79 (Dense) (None, 5) 15685 ================================================================= Total params: 23,093 Trainable params: 23,093 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 16s 218ms/step - loss: 1.5884 - accuracy: 0.2706 - precision_47: 0.2241 - recall_47: 0.0044 - val_loss: 1.5111 - val_accuracy: 0.3771 - val_precision_47: 1.0000 - val_recall_47: 0.0030 Epoch 2/30 70/70 [==============================] - 15s 208ms/step - loss: 1.4499 - accuracy: 0.3995 - precision_47: 0.5491 - recall_47: 0.0699 - val_loss: 1.3897 - val_accuracy: 0.4238 - val_precision_47: 0.5578 - val_recall_47: 0.1674 Epoch 3/30 70/70 [==============================] - 15s 209ms/step - loss: 1.3555 - accuracy: 0.4452 - precision_47: 0.6274 - recall_47: 0.1756 - val_loss: 1.3768 - val_accuracy: 0.4600 - val_precision_47: 0.6299 - val_recall_47: 0.1207 Epoch 4/30 70/70 [==============================] - 15s 210ms/step - loss: 1.2341 - accuracy: 0.5153 - precision_47: 0.6761 - recall_47: 0.2658 - val_loss: 1.2993 - val_accuracy: 0.4827 - val_precision_47: 0.6242 - val_recall_47: 0.2805 Epoch 5/30 70/70 [==============================] - 14s 208ms/step - loss: 1.1214 - accuracy: 0.5731 - precision_47: 0.7089 - recall_47: 0.3410 - val_loss: 1.2918 - val_accuracy: 0.4887 - val_precision_47: 0.5727 - val_recall_47: 0.3801 Epoch 6/30 70/70 [==============================] - 15s 210ms/step - loss: 1.0771 - accuracy: 0.5611 - precision_47: 0.7039 - recall_47: 0.3861 - val_loss: 1.2699 - val_accuracy: 0.4932 - val_precision_47: 0.5884 - val_recall_47: 0.3514 Epoch 7/30 70/70 [==============================] - 15s 214ms/step - loss: 1.0111 - accuracy: 0.5999 - precision_47: 0.7318 - recall_47: 0.4402 - val_loss: 1.2735 - val_accuracy: 0.5038 - val_precision_47: 0.5853 - val_recall_47: 0.3831 Epoch 8/30 70/70 [==============================] - 15s 214ms/step - loss: 0.8511 - accuracy: 0.6735 - precision_47: 0.7631 - recall_47: 0.5386 - val_loss: 1.2909 - val_accuracy: 0.5128 - val_precision_47: 0.6120 - val_recall_47: 0.3997 Epoch 9/30 70/70 [==============================] - 14s 209ms/step - loss: 0.7976 - accuracy: 0.6884 - precision_47: 0.7971 - recall_47: 0.5722 - val_loss: 1.3177 - val_accuracy: 0.5400 - val_precision_47: 0.5968 - val_recall_47: 0.4465 Epoch 10/30 70/70 [==============================] - 14s 204ms/step - loss: 0.6679 - accuracy: 0.7708 - precision_47: 0.8489 - recall_47: 0.6581 - val_loss: 1.5759 - val_accuracy: 0.4766 - val_precision_47: 0.5224 - val_recall_47: 0.4223 Epoch 11/30 70/70 [==============================] - 15s 210ms/step - loss: 0.6017 - accuracy: 0.7807 - precision_47: 0.8467 - recall_47: 0.7162 - val_loss: 1.4544 - val_accuracy: 0.5204 - val_precision_47: 0.5638 - val_recall_47: 0.4465 Epoch 12/30 70/70 [==============================] - 15s 209ms/step - loss: 0.5115 - accuracy: 0.8207 - precision_47: 0.8783 - recall_47: 0.7660 - val_loss: 1.6528 - val_accuracy: 0.5189 - val_precision_47: 0.5615 - val_recall_47: 0.4887 Epoch 13/30 70/70 [==============================] - 14s 207ms/step - loss: 0.4054 - accuracy: 0.8673 - precision_47: 0.9057 - recall_47: 0.8132 - val_loss: 1.8729 - val_accuracy: 0.4947 - val_precision_47: 0.5245 - val_recall_47: 0.4691 Epoch 14/30 70/70 [==============================] - 15s 209ms/step - loss: 0.3176 - accuracy: 0.8929 - precision_47: 0.9256 - recall_47: 0.8736 - val_loss: 1.8912 - val_accuracy: 0.5083 - val_precision_47: 0.5262 - val_recall_47: 0.4691 Epoch 15/30 70/70 [==============================] - 14s 206ms/step - loss: 0.2719 - accuracy: 0.9176 - precision_47: 0.9378 - recall_47: 0.8943 - val_loss: 2.2091 - val_accuracy: 0.4766 - val_precision_47: 0.4918 - val_recall_47: 0.4510 Epoch 16/30 70/70 [==============================] - 14s 205ms/step - loss: 0.2148 - accuracy: 0.9403 - precision_47: 0.9532 - recall_47: 0.9178 - val_loss: 2.3673 - val_accuracy: 0.5264 - val_precision_47: 0.5396 - val_recall_47: 0.5038 Epoch 17/30 70/70 [==============================] - 14s 208ms/step - loss: 0.1311 - accuracy: 0.9671 - precision_47: 0.9722 - recall_47: 0.9585 - val_loss: 2.7172 - val_accuracy: 0.5264 - val_precision_47: 0.5323 - val_recall_47: 0.5098
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.747133493423462 / Test accuracy: 0.5486111044883728
history = test_early_stop(path, [16,16,16,16,16],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_55" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_134 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ max_pooling2d_118 (MaxPoolin (None, 127, 127, 16) 0 _________________________________________________________________ conv2d_135 (Conv2D) (None, 125, 125, 16) 2320 _________________________________________________________________ max_pooling2d_119 (MaxPoolin (None, 62, 62, 16) 0 _________________________________________________________________ conv2d_136 (Conv2D) (None, 60, 60, 16) 2320 _________________________________________________________________ max_pooling2d_120 (MaxPoolin (None, 30, 30, 16) 0 _________________________________________________________________ conv2d_137 (Conv2D) (None, 28, 28, 16) 2320 _________________________________________________________________ max_pooling2d_121 (MaxPoolin (None, 14, 14, 16) 0 _________________________________________________________________ conv2d_138 (Conv2D) (None, 12, 12, 16) 2320 _________________________________________________________________ max_pooling2d_122 (MaxPoolin (None, 6, 6, 16) 0 _________________________________________________________________ flatten_48 (Flatten) (None, 576) 0 _________________________________________________________________ dense_80 (Dense) (None, 5) 2885 ================================================================= Total params: 12,613 Trainable params: 12,613 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 16s 210ms/step - loss: 1.6004 - accuracy: 0.2353 - precision_48: 0.0000e+00 - recall_48: 0.0000e+00 - val_loss: 1.5861 - val_accuracy: 0.2428 - val_precision_48: 0.0000e+00 - val_recall_48: 0.0000e+00 Epoch 2/30 70/70 [==============================] - 14s 204ms/step - loss: 1.5761 - accuracy: 0.2731 - precision_48: 0.0000e+00 - recall_48: 0.0000e+00 - val_loss: 1.5799 - val_accuracy: 0.2504 - val_precision_48: 0.0000e+00 - val_recall_48: 0.0000e+00 Epoch 3/30 70/70 [==============================] - 14s 203ms/step - loss: 1.5647 - accuracy: 0.2774 - precision_48: 0.2818 - recall_48: 6.2100e-04 - val_loss: 1.4966 - val_accuracy: 0.3560 - val_precision_48: 1.0000 - val_recall_48: 0.0015 Epoch 4/30 70/70 [==============================] - 14s 200ms/step - loss: 1.4523 - accuracy: 0.3882 - precision_48: 0.5176 - recall_48: 0.0284 - val_loss: 1.3792 - val_accuracy: 0.4284 - val_precision_48: 0.6857 - val_recall_48: 0.0724 Epoch 5/30 70/70 [==============================] - 14s 205ms/step - loss: 1.2886 - accuracy: 0.4741 - precision_48: 0.6776 - recall_48: 0.2173 - val_loss: 1.2957 - val_accuracy: 0.5158 - val_precision_48: 0.5906 - val_recall_48: 0.2655 Epoch 6/30 70/70 [==============================] - 14s 205ms/step - loss: 1.2334 - accuracy: 0.5175 - precision_48: 0.6589 - recall_48: 0.2951 - val_loss: 1.2582 - val_accuracy: 0.5083 - val_precision_48: 0.5872 - val_recall_48: 0.3454 Epoch 7/30 70/70 [==============================] - 14s 204ms/step - loss: 1.1481 - accuracy: 0.5439 - precision_48: 0.6726 - recall_48: 0.3538 - val_loss: 1.2300 - val_accuracy: 0.5158 - val_precision_48: 0.6414 - val_recall_48: 0.2941 Epoch 8/30 70/70 [==============================] - 14s 204ms/step - loss: 1.1056 - accuracy: 0.5743 - precision_48: 0.6924 - recall_48: 0.3880 - val_loss: 1.2149 - val_accuracy: 0.5354 - val_precision_48: 0.6349 - val_recall_48: 0.3620 Epoch 9/30 70/70 [==============================] - 14s 203ms/step - loss: 1.0452 - accuracy: 0.5853 - precision_48: 0.6978 - recall_48: 0.4345 - val_loss: 1.1772 - val_accuracy: 0.5581 - val_precision_48: 0.6627 - val_recall_48: 0.4178 Epoch 10/30 70/70 [==============================] - 14s 201ms/step - loss: 1.0319 - accuracy: 0.5916 - precision_48: 0.7131 - recall_48: 0.4502 - val_loss: 1.1934 - val_accuracy: 0.5581 - val_precision_48: 0.6309 - val_recall_48: 0.3635 Epoch 11/30 70/70 [==============================] - 14s 206ms/step - loss: 0.9735 - accuracy: 0.6229 - precision_48: 0.7075 - recall_48: 0.4468 - val_loss: 1.2388 - val_accuracy: 0.5566 - val_precision_48: 0.6239 - val_recall_48: 0.4178 Epoch 12/30 70/70 [==============================] - 14s 208ms/step - loss: 0.9793 - accuracy: 0.6105 - precision_48: 0.7395 - recall_48: 0.4622 - val_loss: 1.1798 - val_accuracy: 0.5551 - val_precision_48: 0.6460 - val_recall_48: 0.3937 Epoch 13/30 70/70 [==============================] - 14s 200ms/step - loss: 0.9086 - accuracy: 0.6375 - precision_48: 0.7352 - recall_48: 0.5224 - val_loss: 1.1961 - val_accuracy: 0.5354 - val_precision_48: 0.6156 - val_recall_48: 0.4178 Epoch 14/30 70/70 [==============================] - 14s 202ms/step - loss: 0.8626 - accuracy: 0.6632 - precision_48: 0.7666 - recall_48: 0.5322 - val_loss: 1.1548 - val_accuracy: 0.5505 - val_precision_48: 0.6667 - val_recall_48: 0.4072 Epoch 15/30 70/70 [==============================] - 14s 205ms/step - loss: 0.8628 - accuracy: 0.6779 - precision_48: 0.7748 - recall_48: 0.5508 - val_loss: 1.2155 - val_accuracy: 0.5777 - val_precision_48: 0.6225 - val_recall_48: 0.4676 Epoch 16/30 70/70 [==============================] - 14s 197ms/step - loss: 0.8496 - accuracy: 0.6882 - precision_48: 0.7698 - recall_48: 0.5668 - val_loss: 1.2152 - val_accuracy: 0.5822 - val_precision_48: 0.6367 - val_recall_48: 0.4917 Epoch 17/30 70/70 [==============================] - 14s 198ms/step - loss: 0.7648 - accuracy: 0.7122 - precision_48: 0.7980 - recall_48: 0.6250 - val_loss: 1.1994 - val_accuracy: 0.5581 - val_precision_48: 0.6094 - val_recall_48: 0.4284 Epoch 18/30 70/70 [==============================] - 14s 204ms/step - loss: 0.7890 - accuracy: 0.7119 - precision_48: 0.7932 - recall_48: 0.5937 - val_loss: 1.2603 - val_accuracy: 0.5822 - val_precision_48: 0.6167 - val_recall_48: 0.4902 Epoch 19/30 70/70 [==============================] - 14s 205ms/step - loss: 0.7241 - accuracy: 0.7327 - precision_48: 0.7874 - recall_48: 0.6479 - val_loss: 1.2617 - val_accuracy: 0.5777 - val_precision_48: 0.6351 - val_recall_48: 0.4962 Epoch 20/30 70/70 [==============================] - 14s 203ms/step - loss: 0.7020 - accuracy: 0.7436 - precision_48: 0.8026 - recall_48: 0.6606 - val_loss: 1.2480 - val_accuracy: 0.5988 - val_precision_48: 0.6468 - val_recall_48: 0.4917 Epoch 21/30 70/70 [==============================] - 14s 203ms/step - loss: 0.6651 - accuracy: 0.7636 - precision_48: 0.8275 - recall_48: 0.6723 - val_loss: 1.3602 - val_accuracy: 0.5385 - val_precision_48: 0.5849 - val_recall_48: 0.4781 Epoch 22/30 70/70 [==============================] - 14s 200ms/step - loss: 0.6072 - accuracy: 0.7799 - precision_48: 0.8569 - recall_48: 0.7013 - val_loss: 1.3283 - val_accuracy: 0.5777 - val_precision_48: 0.6369 - val_recall_48: 0.5370 Epoch 23/30 70/70 [==============================] - 14s 202ms/step - loss: 0.5735 - accuracy: 0.7953 - precision_48: 0.8509 - recall_48: 0.7356 - val_loss: 1.3576 - val_accuracy: 0.5777 - val_precision_48: 0.6138 - val_recall_48: 0.5083 Epoch 24/30 70/70 [==============================] - 14s 202ms/step - loss: 0.4914 - accuracy: 0.8360 - precision_48: 0.8732 - recall_48: 0.7893 - val_loss: 1.4736 - val_accuracy: 0.5777 - val_precision_48: 0.6093 - val_recall_48: 0.5339 Epoch 25/30 70/70 [==============================] - 14s 201ms/step - loss: 0.4802 - accuracy: 0.8265 - precision_48: 0.8748 - recall_48: 0.7828 - val_loss: 1.5054 - val_accuracy: 0.5837 - val_precision_48: 0.6207 - val_recall_48: 0.5430 Epoch 26/30 70/70 [==============================] - 14s 196ms/step - loss: 0.4524 - accuracy: 0.8356 - precision_48: 0.8689 - recall_48: 0.7892 - val_loss: 1.5524 - val_accuracy: 0.5686 - val_precision_48: 0.5865 - val_recall_48: 0.5113 Epoch 27/30 70/70 [==============================] - 14s 199ms/step - loss: 0.4404 - accuracy: 0.8348 - precision_48: 0.8752 - recall_48: 0.7920 - val_loss: 1.6976 - val_accuracy: 0.5626 - val_precision_48: 0.6017 - val_recall_48: 0.5445 Epoch 28/30 70/70 [==============================] - 14s 200ms/step - loss: 0.3775 - accuracy: 0.8698 - precision_48: 0.8994 - recall_48: 0.8375 - val_loss: 1.6973 - val_accuracy: 0.5505 - val_precision_48: 0.5812 - val_recall_48: 0.5234
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 1.5836231708526611 / Test accuracy: 0.5694444179534912
history = test_early_stop(path, [16,16,16,16,16,16],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_56" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_139 (Conv2D) (None, 254, 254, 16) 448 _________________________________________________________________ max_pooling2d_123 (MaxPoolin (None, 127, 127, 16) 0 _________________________________________________________________ conv2d_140 (Conv2D) (None, 125, 125, 16) 2320 _________________________________________________________________ max_pooling2d_124 (MaxPoolin (None, 62, 62, 16) 0 _________________________________________________________________ conv2d_141 (Conv2D) (None, 60, 60, 16) 2320 _________________________________________________________________ max_pooling2d_125 (MaxPoolin (None, 30, 30, 16) 0 _________________________________________________________________ conv2d_142 (Conv2D) (None, 28, 28, 16) 2320 _________________________________________________________________ max_pooling2d_126 (MaxPoolin (None, 14, 14, 16) 0 _________________________________________________________________ conv2d_143 (Conv2D) (None, 12, 12, 16) 2320 _________________________________________________________________ max_pooling2d_127 (MaxPoolin (None, 6, 6, 16) 0 _________________________________________________________________ conv2d_144 (Conv2D) (None, 4, 4, 16) 2320 _________________________________________________________________ max_pooling2d_128 (MaxPoolin (None, 2, 2, 16) 0 _________________________________________________________________ flatten_49 (Flatten) (None, 64) 0 _________________________________________________________________ dense_81 (Dense) (None, 5) 325 ================================================================= Total params: 12,373 Trainable params: 12,373 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 15s 208ms/step - loss: 1.5857 - accuracy: 0.2638 - precision_49: 0.2472 - recall_49: 0.0013 - val_loss: 1.4413 - val_accuracy: 0.4223 - val_precision_49: 0.5667 - val_recall_49: 0.0256 Epoch 2/30 70/70 [==============================] - 14s 201ms/step - loss: 1.4445 - accuracy: 0.4089 - precision_49: 0.6407 - recall_49: 0.0756 - val_loss: 1.4618 - val_accuracy: 0.4253 - val_precision_49: 0.5000 - val_recall_49: 0.0045 Epoch 3/30 70/70 [==============================] - 14s 199ms/step - loss: 1.3890 - accuracy: 0.4370 - precision_49: 0.6844 - recall_49: 0.1197 - val_loss: 1.3431 - val_accuracy: 0.4872 - val_precision_49: 0.6667 - val_recall_49: 0.1629 Epoch 4/30 70/70 [==============================] - 14s 201ms/step - loss: 1.2877 - accuracy: 0.5097 - precision_49: 0.6554 - recall_49: 0.2315 - val_loss: 1.2865 - val_accuracy: 0.4902 - val_precision_49: 0.6553 - val_recall_49: 0.2609 Epoch 5/30 70/70 [==============================] - 14s 201ms/step - loss: 1.2417 - accuracy: 0.5272 - precision_49: 0.6643 - recall_49: 0.3083 - val_loss: 1.3197 - val_accuracy: 0.4917 - val_precision_49: 0.5918 - val_recall_49: 0.3695 Epoch 6/30 70/70 [==============================] - 14s 203ms/step - loss: 1.2219 - accuracy: 0.5250 - precision_49: 0.6517 - recall_49: 0.3427 - val_loss: 1.2198 - val_accuracy: 0.5370 - val_precision_49: 0.6434 - val_recall_49: 0.3756 Epoch 7/30 70/70 [==============================] - 14s 201ms/step - loss: 1.1182 - accuracy: 0.5862 - precision_49: 0.6877 - recall_49: 0.3993 - val_loss: 1.2223 - val_accuracy: 0.5385 - val_precision_49: 0.6601 - val_recall_49: 0.3017 Epoch 8/30 70/70 [==============================] - 14s 202ms/step - loss: 1.1495 - accuracy: 0.5548 - precision_49: 0.6778 - recall_49: 0.3771 - val_loss: 1.1891 - val_accuracy: 0.5460 - val_precision_49: 0.6632 - val_recall_49: 0.3861 Epoch 9/30 70/70 [==============================] - 14s 193ms/step - loss: 1.0919 - accuracy: 0.5738 - precision_49: 0.7021 - recall_49: 0.4165 - val_loss: 1.2130 - val_accuracy: 0.5430 - val_precision_49: 0.6491 - val_recall_49: 0.3710 Epoch 10/30 70/70 [==============================] - 14s 199ms/step - loss: 1.0171 - accuracy: 0.6206 - precision_49: 0.7223 - recall_49: 0.4612 - val_loss: 1.2128 - val_accuracy: 0.5686 - val_precision_49: 0.6288 - val_recall_49: 0.3756 Epoch 11/30 70/70 [==============================] - 14s 200ms/step - loss: 1.0034 - accuracy: 0.6193 - precision_49: 0.7504 - recall_49: 0.4476 - val_loss: 1.2217 - val_accuracy: 0.5551 - val_precision_49: 0.6271 - val_recall_49: 0.3982 Epoch 12/30 70/70 [==============================] - 14s 203ms/step - loss: 0.9629 - accuracy: 0.6300 - precision_49: 0.7367 - recall_49: 0.4771 - val_loss: 1.1509 - val_accuracy: 0.5641 - val_precision_49: 0.6774 - val_recall_49: 0.3801 Epoch 13/30 70/70 [==============================] - 14s 197ms/step - loss: 0.9209 - accuracy: 0.6455 - precision_49: 0.7574 - recall_49: 0.5122 - val_loss: 1.2238 - val_accuracy: 0.5143 - val_precision_49: 0.6423 - val_recall_49: 0.3439 Epoch 14/30 70/70 [==============================] - 14s 201ms/step - loss: 0.9489 - accuracy: 0.6272 - precision_49: 0.7462 - recall_49: 0.4950 - val_loss: 1.1535 - val_accuracy: 0.5626 - val_precision_49: 0.6388 - val_recall_49: 0.4374 Epoch 15/30 70/70 [==============================] - 14s 199ms/step - loss: 0.8740 - accuracy: 0.6588 - precision_49: 0.7503 - recall_49: 0.5500 - val_loss: 1.1226 - val_accuracy: 0.6018 - val_precision_49: 0.6740 - val_recall_49: 0.5083 Epoch 16/30 70/70 [==============================] - 14s 197ms/step - loss: 0.8406 - accuracy: 0.6815 - precision_49: 0.7701 - recall_49: 0.5641 - val_loss: 1.2007 - val_accuracy: 0.5354 - val_precision_49: 0.6299 - val_recall_49: 0.4133 Epoch 17/30 70/70 [==============================] - 14s 200ms/step - loss: 0.8029 - accuracy: 0.6957 - precision_49: 0.7816 - recall_49: 0.5964 - val_loss: 1.1439 - val_accuracy: 0.5762 - val_precision_49: 0.6562 - val_recall_49: 0.4434 Epoch 18/30 70/70 [==============================] - 14s 198ms/step - loss: 0.7620 - accuracy: 0.7230 - precision_49: 0.7934 - recall_49: 0.6103 - val_loss: 1.1579 - val_accuracy: 0.5822 - val_precision_49: 0.6499 - val_recall_49: 0.5068 Epoch 19/30 70/70 [==============================] - 14s 201ms/step - loss: 0.7853 - accuracy: 0.6933 - precision_49: 0.7693 - recall_49: 0.6017 - val_loss: 1.1590 - val_accuracy: 0.5822 - val_precision_49: 0.6534 - val_recall_49: 0.4947 Epoch 20/30 70/70 [==============================] - 14s 200ms/step - loss: 0.7121 - accuracy: 0.7236 - precision_49: 0.8041 - recall_49: 0.6490 - val_loss: 1.1685 - val_accuracy: 0.5701 - val_precision_49: 0.6329 - val_recall_49: 0.4811 Epoch 21/30 70/70 [==============================] - 14s 198ms/step - loss: 0.6659 - accuracy: 0.7562 - precision_49: 0.8132 - recall_49: 0.6826 - val_loss: 1.1815 - val_accuracy: 0.5566 - val_precision_49: 0.6362 - val_recall_49: 0.4827 Epoch 22/30 70/70 [==============================] - 14s 192ms/step - loss: 0.6539 - accuracy: 0.7588 - precision_49: 0.8065 - recall_49: 0.6842 - val_loss: 1.2347 - val_accuracy: 0.5701 - val_precision_49: 0.6158 - val_recall_49: 0.4932 Epoch 23/30 70/70 [==============================] - 14s 198ms/step - loss: 0.5759 - accuracy: 0.7808 - precision_49: 0.8300 - recall_49: 0.7226 - val_loss: 1.2562 - val_accuracy: 0.5973 - val_precision_49: 0.6385 - val_recall_49: 0.5354
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 1.1179097890853882 / Test accuracy: 0.6284722089767456
history = test_early_stop(path, [64],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_35" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_67 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ max_pooling2d_23 (MaxPooling (None, 127, 127, 64) 0 _________________________________________________________________ flatten_34 (Flatten) (None, 1032256) 0 _________________________________________________________________ dense_50 (Dense) (None, 5) 5161285 ================================================================= Total params: 5,163,077 Trainable params: 5,163,077 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 13s 180ms/step - loss: 13.8639 - accuracy: 0.2561 - precision_34: 0.2233 - recall_34: 0.1252 - val_loss: 1.5478 - val_accuracy: 0.3514 - val_precision_34: 0.4643 - val_recall_34: 0.0196 Epoch 2/30 70/70 [==============================] - 12s 173ms/step - loss: 1.2423 - accuracy: 0.5735 - precision_34: 0.7824 - recall_34: 0.1616 - val_loss: 1.4316 - val_accuracy: 0.4178 - val_precision_34: 0.5459 - val_recall_34: 0.1523 Epoch 3/30 70/70 [==============================] - 12s 172ms/step - loss: 0.4951 - accuracy: 0.8781 - precision_34: 0.9650 - recall_34: 0.7286 - val_loss: 1.5686 - val_accuracy: 0.4525 - val_precision_34: 0.5150 - val_recall_34: 0.2851 Epoch 4/30 70/70 [==============================] - 12s 174ms/step - loss: 0.1608 - accuracy: 0.9741 - precision_34: 0.9902 - recall_34: 0.9432 - val_loss: 1.7922 - val_accuracy: 0.4585 - val_precision_34: 0.4859 - val_recall_34: 0.3650 Epoch 5/30 70/70 [==============================] - 12s 172ms/step - loss: 0.0591 - accuracy: 0.9943 - precision_34: 0.9962 - recall_34: 0.9931 - val_loss: 1.9635 - val_accuracy: 0.4600 - val_precision_34: 0.4879 - val_recall_34: 0.3967 Epoch 6/30 70/70 [==============================] - 12s 173ms/step - loss: 0.0411 - accuracy: 0.9964 - precision_34: 0.9970 - recall_34: 0.9948 - val_loss: 1.9916 - val_accuracy: 0.4811 - val_precision_34: 0.4940 - val_recall_34: 0.4314 Epoch 7/30 70/70 [==============================] - 12s 171ms/step - loss: 0.0185 - accuracy: 0.9985 - precision_34: 0.9985 - recall_34: 0.9985 - val_loss: 2.0976 - val_accuracy: 0.4736 - val_precision_34: 0.4947 - val_recall_34: 0.4193 Epoch 8/30 70/70 [==============================] - 12s 173ms/step - loss: 0.0279 - accuracy: 0.9974 - precision_34: 0.9974 - recall_34: 0.9974 - val_loss: 1.9681 - val_accuracy: 0.4751 - val_precision_34: 0.4813 - val_recall_34: 0.4087 Epoch 9/30 70/70 [==============================] - 12s 174ms/step - loss: 0.0184 - accuracy: 0.9980 - precision_34: 0.9980 - recall_34: 0.9980 - val_loss: 1.9760 - val_accuracy: 0.4630 - val_precision_34: 0.4866 - val_recall_34: 0.4103 Epoch 10/30 70/70 [==============================] - 12s 174ms/step - loss: 0.0126 - accuracy: 0.9991 - precision_34: 0.9991 - recall_34: 0.9991 - val_loss: 2.4738 - val_accuracy: 0.4495 - val_precision_34: 0.4712 - val_recall_34: 0.4193 Epoch 11/30 70/70 [==============================] - 12s 176ms/step - loss: 0.0112 - accuracy: 0.9984 - precision_34: 0.9984 - recall_34: 0.9984 - val_loss: 2.1488 - val_accuracy: 0.4721 - val_precision_34: 0.4983 - val_recall_34: 0.4344 Epoch 12/30 70/70 [==============================] - 12s 175ms/step - loss: 0.0251 - accuracy: 0.9980 - precision_34: 0.9980 - recall_34: 0.9980 - val_loss: 2.1921 - val_accuracy: 0.4721 - val_precision_34: 0.4932 - val_recall_34: 0.4359 Epoch 13/30 70/70 [==============================] - 12s 172ms/step - loss: 0.0202 - accuracy: 0.9968 - precision_34: 0.9968 - recall_34: 0.9968 - val_loss: 2.1128 - val_accuracy: 0.4646 - val_precision_34: 0.4894 - val_recall_34: 0.4178 Epoch 14/30 70/70 [==============================] - 12s 173ms/step - loss: 0.0138 - accuracy: 0.9973 - precision_34: 0.9983 - recall_34: 0.9973 - val_loss: 2.3773 - val_accuracy: 0.4615 - val_precision_34: 0.4746 - val_recall_34: 0.4223
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.1021664142608643 / Test accuracy: 0.5277777910232544
history = test_early_stop(path, [64,64],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_36" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_68 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ max_pooling2d_24 (MaxPooling (None, 127, 127, 64) 0 _________________________________________________________________ conv2d_69 (Conv2D) (None, 125, 125, 64) 36928 _________________________________________________________________ max_pooling2d_25 (MaxPooling (None, 62, 62, 64) 0 _________________________________________________________________ flatten_35 (Flatten) (None, 246016) 0 _________________________________________________________________ dense_51 (Dense) (None, 5) 1230085 ================================================================= Total params: 1,268,805 Trainable params: 1,268,805 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 14s 182ms/step - loss: 2.2902 - accuracy: 0.2844 - precision_35: 0.3150 - recall_35: 0.0574 - val_loss: 1.4736 - val_accuracy: 0.3363 - val_precision_35: 0.6355 - val_recall_35: 0.1026 Epoch 2/30 70/70 [==============================] - 12s 175ms/step - loss: 1.4184 - accuracy: 0.4452 - precision_35: 0.6053 - recall_35: 0.1191 - val_loss: 1.3726 - val_accuracy: 0.4495 - val_precision_35: 0.6389 - val_recall_35: 0.1388 Epoch 3/30 70/70 [==============================] - 12s 176ms/step - loss: 1.1026 - accuracy: 0.5771 - precision_35: 0.7434 - recall_35: 0.3418 - val_loss: 1.3936 - val_accuracy: 0.4630 - val_precision_35: 0.5455 - val_recall_35: 0.2896 Epoch 4/30 70/70 [==============================] - 12s 175ms/step - loss: 0.6958 - accuracy: 0.7541 - precision_35: 0.8559 - recall_35: 0.6051 - val_loss: 1.6070 - val_accuracy: 0.4359 - val_precision_35: 0.5125 - val_recall_35: 0.3409 Epoch 5/30 70/70 [==============================] - 12s 175ms/step - loss: 0.3358 - accuracy: 0.9166 - precision_35: 0.9577 - recall_35: 0.8553 - val_loss: 2.0741 - val_accuracy: 0.4404 - val_precision_35: 0.4710 - val_recall_35: 0.3922 Epoch 6/30 70/70 [==============================] - 12s 173ms/step - loss: 0.1366 - accuracy: 0.9748 - precision_35: 0.9830 - recall_35: 0.9590 - val_loss: 2.3883 - val_accuracy: 0.4223 - val_precision_35: 0.4518 - val_recall_35: 0.3891 Epoch 7/30 70/70 [==============================] - 12s 174ms/step - loss: 0.0615 - accuracy: 0.9938 - precision_35: 0.9951 - recall_35: 0.9891 - val_loss: 2.4764 - val_accuracy: 0.4314 - val_precision_35: 0.4514 - val_recall_35: 0.3997 Epoch 8/30 70/70 [==============================] - 12s 173ms/step - loss: 0.0402 - accuracy: 0.9966 - precision_35: 0.9966 - recall_35: 0.9947 - val_loss: 3.0094 - val_accuracy: 0.4178 - val_precision_35: 0.4345 - val_recall_35: 0.3952 Epoch 9/30 70/70 [==============================] - 12s 172ms/step - loss: 0.0415 - accuracy: 0.9963 - precision_35: 0.9963 - recall_35: 0.9949 - val_loss: 3.1946 - val_accuracy: 0.4103 - val_precision_35: 0.4194 - val_recall_35: 0.3922 Epoch 10/30 70/70 [==============================] - 12s 173ms/step - loss: 0.0635 - accuracy: 0.9945 - precision_35: 0.9967 - recall_35: 0.9945 - val_loss: 3.0575 - val_accuracy: 0.4465 - val_precision_35: 0.4548 - val_recall_35: 0.4253 Epoch 11/30 70/70 [==============================] - 12s 167ms/step - loss: 0.0151 - accuracy: 0.9982 - precision_35: 0.9982 - recall_35: 0.9982 - val_loss: 3.2909 - val_accuracy: 0.4253 - val_precision_35: 0.4332 - val_recall_35: 0.4057
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.93526029586792 / Test accuracy: 0.4930555522441864
history = test_early_stop(path, [64,64,64],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_37" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_70 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ max_pooling2d_26 (MaxPooling (None, 127, 127, 64) 0 _________________________________________________________________ conv2d_71 (Conv2D) (None, 125, 125, 64) 36928 _________________________________________________________________ max_pooling2d_27 (MaxPooling (None, 62, 62, 64) 0 _________________________________________________________________ conv2d_72 (Conv2D) (None, 60, 60, 64) 36928 _________________________________________________________________ max_pooling2d_28 (MaxPooling (None, 30, 30, 64) 0 _________________________________________________________________ flatten_36 (Flatten) (None, 57600) 0 _________________________________________________________________ dense_52 (Dense) (None, 5) 288005 ================================================================= Total params: 363,653 Trainable params: 363,653 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 13s 184ms/step - loss: 1.7196 - accuracy: 0.2876 - precision_36: 0.3247 - recall_36: 0.0346 - val_loss: 1.4263 - val_accuracy: 0.4495 - val_precision_36: 0.6118 - val_recall_36: 0.1403 Epoch 2/30 70/70 [==============================] - 12s 174ms/step - loss: 1.3610 - accuracy: 0.4586 - precision_36: 0.6302 - recall_36: 0.1787 - val_loss: 1.3607 - val_accuracy: 0.4570 - val_precision_36: 0.5568 - val_recall_36: 0.1554 Epoch 3/30 70/70 [==============================] - 12s 174ms/step - loss: 1.2196 - accuracy: 0.5291 - precision_36: 0.6534 - recall_36: 0.2846 - val_loss: 1.3672 - val_accuracy: 0.5068 - val_precision_36: 0.5481 - val_recall_36: 0.3183 Epoch 4/30 70/70 [==============================] - 12s 173ms/step - loss: 1.0214 - accuracy: 0.6148 - precision_36: 0.7331 - recall_36: 0.4528 - val_loss: 1.3473 - val_accuracy: 0.4872 - val_precision_36: 0.5758 - val_recall_36: 0.3092 Epoch 5/30 70/70 [==============================] - 12s 176ms/step - loss: 0.8521 - accuracy: 0.6910 - precision_36: 0.7798 - recall_36: 0.5375 - val_loss: 1.4636 - val_accuracy: 0.4947 - val_precision_36: 0.5466 - val_recall_36: 0.3801 Epoch 6/30 70/70 [==============================] - 12s 176ms/step - loss: 0.5686 - accuracy: 0.8008 - precision_36: 0.8787 - recall_36: 0.7324 - val_loss: 1.8346 - val_accuracy: 0.5023 - val_precision_36: 0.5476 - val_recall_36: 0.4600 Epoch 7/30 70/70 [==============================] - 12s 175ms/step - loss: 0.3338 - accuracy: 0.8876 - precision_36: 0.9198 - recall_36: 0.8646 - val_loss: 1.9499 - val_accuracy: 0.4947 - val_precision_36: 0.5214 - val_recall_36: 0.4585 Epoch 8/30 70/70 [==============================] - 12s 175ms/step - loss: 0.1872 - accuracy: 0.9417 - precision_36: 0.9640 - recall_36: 0.9305 - val_loss: 2.7189 - val_accuracy: 0.5023 - val_precision_36: 0.5088 - val_recall_36: 0.4796 Epoch 9/30 70/70 [==============================] - 12s 175ms/step - loss: 0.1015 - accuracy: 0.9749 - precision_36: 0.9789 - recall_36: 0.9707 - val_loss: 3.0702 - val_accuracy: 0.4872 - val_precision_36: 0.4921 - val_recall_36: 0.4706 Epoch 10/30 70/70 [==============================] - 12s 175ms/step - loss: 0.0530 - accuracy: 0.9885 - precision_36: 0.9891 - recall_36: 0.9869 - val_loss: 3.4882 - val_accuracy: 0.4857 - val_precision_36: 0.4969 - val_recall_36: 0.4796 Epoch 11/30 70/70 [==============================] - 12s 179ms/step - loss: 0.0508 - accuracy: 0.9942 - precision_36: 0.9952 - recall_36: 0.9936 - val_loss: 3.2652 - val_accuracy: 0.5038 - val_precision_36: 0.5140 - val_recall_36: 0.4992
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.255632162094116 / Test accuracy: 0.5208333134651184
history = test_early_stop(path, [64,64,64,64],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_38" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_73 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ max_pooling2d_29 (MaxPooling (None, 127, 127, 64) 0 _________________________________________________________________ conv2d_74 (Conv2D) (None, 125, 125, 64) 36928 _________________________________________________________________ max_pooling2d_30 (MaxPooling (None, 62, 62, 64) 0 _________________________________________________________________ conv2d_75 (Conv2D) (None, 60, 60, 64) 36928 _________________________________________________________________ max_pooling2d_31 (MaxPooling (None, 30, 30, 64) 0 _________________________________________________________________ conv2d_76 (Conv2D) (None, 28, 28, 64) 36928 _________________________________________________________________ max_pooling2d_32 (MaxPooling (None, 14, 14, 64) 0 _________________________________________________________________ flatten_37 (Flatten) (None, 12544) 0 _________________________________________________________________ dense_53 (Dense) (None, 5) 62725 ================================================================= Total params: 175,301 Trainable params: 175,301 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 13s 180ms/step - loss: 1.5486 - accuracy: 0.3091 - precision_37: 0.5003 - recall_37: 0.0262 - val_loss: 1.4620 - val_accuracy: 0.4268 - val_precision_37: 0.6667 - val_recall_37: 0.0030 Epoch 2/30 70/70 [==============================] - 12s 177ms/step - loss: 1.3711 - accuracy: 0.4505 - precision_37: 0.6276 - recall_37: 0.1641 - val_loss: 1.3556 - val_accuracy: 0.4495 - val_precision_37: 0.6027 - val_recall_37: 0.2036 Epoch 3/30 70/70 [==============================] - 12s 178ms/step - loss: 1.2247 - accuracy: 0.5352 - precision_37: 0.6582 - recall_37: 0.2910 - val_loss: 1.2449 - val_accuracy: 0.5173 - val_precision_37: 0.6617 - val_recall_37: 0.2655 Epoch 4/30 70/70 [==============================] - 12s 174ms/step - loss: 1.1219 - accuracy: 0.5478 - precision_37: 0.7203 - recall_37: 0.3624 - val_loss: 1.2260 - val_accuracy: 0.5204 - val_precision_37: 0.6419 - val_recall_37: 0.3002 Epoch 5/30 70/70 [==============================] - 12s 175ms/step - loss: 1.0084 - accuracy: 0.6116 - precision_37: 0.7307 - recall_37: 0.4210 - val_loss: 1.2749 - val_accuracy: 0.5309 - val_precision_37: 0.6160 - val_recall_37: 0.3605 Epoch 6/30 70/70 [==============================] - 12s 176ms/step - loss: 0.8091 - accuracy: 0.6968 - precision_37: 0.7813 - recall_37: 0.5787 - val_loss: 1.2307 - val_accuracy: 0.5520 - val_precision_37: 0.6345 - val_recall_37: 0.4268 Epoch 7/30 70/70 [==============================] - 12s 176ms/step - loss: 0.6438 - accuracy: 0.7705 - precision_37: 0.8501 - recall_37: 0.6769 - val_loss: 1.4047 - val_accuracy: 0.5204 - val_precision_37: 0.5720 - val_recall_37: 0.4314 Epoch 8/30 70/70 [==============================] - 12s 175ms/step - loss: 0.4680 - accuracy: 0.8310 - precision_37: 0.8834 - recall_37: 0.7808 - val_loss: 1.6142 - val_accuracy: 0.5053 - val_precision_37: 0.5505 - val_recall_37: 0.4525 Epoch 9/30 70/70 [==============================] - 12s 175ms/step - loss: 0.3250 - accuracy: 0.8965 - precision_37: 0.9196 - recall_37: 0.8603 - val_loss: 2.1664 - val_accuracy: 0.4691 - val_precision_37: 0.4890 - val_recall_37: 0.4374 Epoch 10/30 70/70 [==============================] - 12s 175ms/step - loss: 0.2095 - accuracy: 0.9334 - precision_37: 0.9470 - recall_37: 0.9196 - val_loss: 2.2970 - val_accuracy: 0.5249 - val_precision_37: 0.5361 - val_recall_37: 0.5038 Epoch 11/30 70/70 [==============================] - 12s 175ms/step - loss: 0.1536 - accuracy: 0.9547 - precision_37: 0.9630 - recall_37: 0.9449 - val_loss: 2.8976 - val_accuracy: 0.5143 - val_precision_37: 0.5253 - val_recall_37: 0.5008 Epoch 12/30 70/70 [==============================] - 12s 177ms/step - loss: 0.0859 - accuracy: 0.9799 - precision_37: 0.9850 - recall_37: 0.9786 - val_loss: 3.3267 - val_accuracy: 0.5023 - val_precision_37: 0.5054 - val_recall_37: 0.4932 Epoch 13/30 70/70 [==============================] - 12s 177ms/step - loss: 0.0431 - accuracy: 0.9925 - precision_37: 0.9934 - recall_37: 0.9916 - val_loss: 3.5607 - val_accuracy: 0.4947 - val_precision_37: 0.5093 - val_recall_37: 0.4932 Epoch 14/30 70/70 [==============================] - 12s 178ms/step - loss: 0.0689 - accuracy: 0.9846 - precision_37: 0.9869 - recall_37: 0.9835 - val_loss: 3.1959 - val_accuracy: 0.5264 - val_precision_37: 0.5343 - val_recall_37: 0.5173
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.244446039199829 / Test accuracy: 0.5763888955116272
history = test_early_stop(path, [64,64,64,64,64],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_39" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_77 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ max_pooling2d_33 (MaxPooling (None, 127, 127, 64) 0 _________________________________________________________________ conv2d_78 (Conv2D) (None, 125, 125, 64) 36928 _________________________________________________________________ max_pooling2d_34 (MaxPooling (None, 62, 62, 64) 0 _________________________________________________________________ conv2d_79 (Conv2D) (None, 60, 60, 64) 36928 _________________________________________________________________ max_pooling2d_35 (MaxPooling (None, 30, 30, 64) 0 _________________________________________________________________ conv2d_80 (Conv2D) (None, 28, 28, 64) 36928 _________________________________________________________________ max_pooling2d_36 (MaxPooling (None, 14, 14, 64) 0 _________________________________________________________________ conv2d_81 (Conv2D) (None, 12, 12, 64) 36928 _________________________________________________________________ max_pooling2d_37 (MaxPooling (None, 6, 6, 64) 0 _________________________________________________________________ flatten_38 (Flatten) (None, 2304) 0 _________________________________________________________________ dense_54 (Dense) (None, 5) 11525 ================================================================= Total params: 161,029 Trainable params: 161,029 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 14s 186ms/step - loss: 1.5680 - accuracy: 0.2798 - precision_38: 0.3930 - recall_38: 0.0203 - val_loss: 1.4179 - val_accuracy: 0.4148 - val_precision_38: 0.6489 - val_recall_38: 0.0920 Epoch 2/30 70/70 [==============================] - 12s 176ms/step - loss: 1.3723 - accuracy: 0.4448 - precision_38: 0.5905 - recall_38: 0.1794 - val_loss: 1.4081 - val_accuracy: 0.4510 - val_precision_38: 0.6226 - val_recall_38: 0.0995 Epoch 3/30 70/70 [==============================] - 12s 175ms/step - loss: 1.3235 - accuracy: 0.4723 - precision_38: 0.6565 - recall_38: 0.2052 - val_loss: 1.3289 - val_accuracy: 0.5249 - val_precision_38: 0.6750 - val_recall_38: 0.0814 Epoch 4/30 70/70 [==============================] - 12s 172ms/step - loss: 1.2274 - accuracy: 0.5373 - precision_38: 0.6685 - recall_38: 0.2718 - val_loss: 1.2460 - val_accuracy: 0.5234 - val_precision_38: 0.6655 - val_recall_38: 0.2911 Epoch 5/30 70/70 [==============================] - 12s 176ms/step - loss: 1.1312 - accuracy: 0.5690 - precision_38: 0.7066 - recall_38: 0.3608 - val_loss: 1.2747 - val_accuracy: 0.4962 - val_precision_38: 0.6339 - val_recall_38: 0.2821 Epoch 6/30 70/70 [==============================] - 12s 176ms/step - loss: 1.0487 - accuracy: 0.5848 - precision_38: 0.7162 - recall_38: 0.4250 - val_loss: 1.2345 - val_accuracy: 0.5279 - val_precision_38: 0.6272 - val_recall_38: 0.3198 Epoch 7/30 70/70 [==============================] - 12s 176ms/step - loss: 1.0034 - accuracy: 0.6262 - precision_38: 0.7217 - recall_38: 0.4579 - val_loss: 1.1808 - val_accuracy: 0.5671 - val_precision_38: 0.6564 - val_recall_38: 0.4495 Epoch 8/30 70/70 [==============================] - 12s 176ms/step - loss: 0.8905 - accuracy: 0.6496 - precision_38: 0.7457 - recall_38: 0.5314 - val_loss: 1.1846 - val_accuracy: 0.5551 - val_precision_38: 0.6128 - val_recall_38: 0.4630 Epoch 9/30 70/70 [==============================] - 12s 176ms/step - loss: 0.7976 - accuracy: 0.6859 - precision_38: 0.7674 - recall_38: 0.5965 - val_loss: 1.1632 - val_accuracy: 0.5671 - val_precision_38: 0.6508 - val_recall_38: 0.4947 Epoch 10/30 70/70 [==============================] - 12s 175ms/step - loss: 0.7227 - accuracy: 0.7320 - precision_38: 0.8071 - recall_38: 0.6275 - val_loss: 1.4173 - val_accuracy: 0.5626 - val_precision_38: 0.6133 - val_recall_38: 0.5143 Epoch 11/30 70/70 [==============================] - 12s 178ms/step - loss: 0.6576 - accuracy: 0.7561 - precision_38: 0.8166 - recall_38: 0.6825 - val_loss: 1.3905 - val_accuracy: 0.5596 - val_precision_38: 0.6047 - val_recall_38: 0.5098 Epoch 12/30 70/70 [==============================] - 12s 176ms/step - loss: 0.4974 - accuracy: 0.8265 - precision_38: 0.8674 - recall_38: 0.7729 - val_loss: 1.3534 - val_accuracy: 0.5943 - val_precision_38: 0.6414 - val_recall_38: 0.5370 Epoch 13/30 70/70 [==============================] - 12s 175ms/step - loss: 0.3946 - accuracy: 0.8593 - precision_38: 0.8925 - recall_38: 0.8210 - val_loss: 1.4609 - val_accuracy: 0.5837 - val_precision_38: 0.6126 - val_recall_38: 0.5294 Epoch 14/30 70/70 [==============================] - 12s 174ms/step - loss: 0.3140 - accuracy: 0.8866 - precision_38: 0.9101 - recall_38: 0.8614 - val_loss: 1.6428 - val_accuracy: 0.5475 - val_precision_38: 0.5828 - val_recall_38: 0.5204 Epoch 15/30 70/70 [==============================] - 12s 175ms/step - loss: 0.2203 - accuracy: 0.9245 - precision_38: 0.9442 - recall_38: 0.9087 - val_loss: 2.1056 - val_accuracy: 0.5641 - val_precision_38: 0.5790 - val_recall_38: 0.5415 Epoch 16/30 70/70 [==============================] - 12s 176ms/step - loss: 0.1819 - accuracy: 0.9389 - precision_38: 0.9551 - recall_38: 0.9318 - val_loss: 2.1271 - val_accuracy: 0.5611 - val_precision_38: 0.5723 - val_recall_38: 0.5490 Epoch 17/30 70/70 [==============================] - 12s 176ms/step - loss: 0.2132 - accuracy: 0.9325 - precision_38: 0.9387 - recall_38: 0.9191 - val_loss: 2.2186 - val_accuracy: 0.5400 - val_precision_38: 0.5550 - val_recall_38: 0.5249 Epoch 18/30 70/70 [==============================] - 12s 175ms/step - loss: 0.1633 - accuracy: 0.9477 - precision_38: 0.9595 - recall_38: 0.9417 - val_loss: 2.3126 - val_accuracy: 0.5400 - val_precision_38: 0.5468 - val_recall_38: 0.5204 Epoch 19/30 70/70 [==============================] - 12s 176ms/step - loss: 0.0644 - accuracy: 0.9844 - precision_38: 0.9865 - recall_38: 0.9803 - val_loss: 2.6955 - val_accuracy: 0.5566 - val_precision_38: 0.5692 - val_recall_38: 0.5460 Epoch 20/30 70/70 [==============================] - 12s 168ms/step - loss: 0.0544 - accuracy: 0.9911 - precision_38: 0.9912 - recall_38: 0.9898 - val_loss: 3.0839 - val_accuracy: 0.5686 - val_precision_38: 0.5767 - val_recall_38: 0.5611
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.828472852706909 / Test accuracy: 0.6041666865348816
history = test_early_stop(path, [64,64,64,64,64,64],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_40" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_82 (Conv2D) (None, 254, 254, 64) 1792 _________________________________________________________________ max_pooling2d_38 (MaxPooling (None, 127, 127, 64) 0 _________________________________________________________________ conv2d_83 (Conv2D) (None, 125, 125, 64) 36928 _________________________________________________________________ max_pooling2d_39 (MaxPooling (None, 62, 62, 64) 0 _________________________________________________________________ conv2d_84 (Conv2D) (None, 60, 60, 64) 36928 _________________________________________________________________ max_pooling2d_40 (MaxPooling (None, 30, 30, 64) 0 _________________________________________________________________ conv2d_85 (Conv2D) (None, 28, 28, 64) 36928 _________________________________________________________________ max_pooling2d_41 (MaxPooling (None, 14, 14, 64) 0 _________________________________________________________________ conv2d_86 (Conv2D) (None, 12, 12, 64) 36928 _________________________________________________________________ max_pooling2d_42 (MaxPooling (None, 6, 6, 64) 0 _________________________________________________________________ conv2d_87 (Conv2D) (None, 4, 4, 64) 36928 _________________________________________________________________ max_pooling2d_43 (MaxPooling (None, 2, 2, 64) 0 _________________________________________________________________ flatten_39 (Flatten) (None, 256) 0 _________________________________________________________________ dense_55 (Dense) (None, 5) 1285 ================================================================= Total params: 187,717 Trainable params: 187,717 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 13s 180ms/step - loss: 1.5982 - accuracy: 0.2424 - precision_39: 0.1153 - recall_39: 0.0022 - val_loss: 1.4612 - val_accuracy: 0.4057 - val_precision_39: 0.5057 - val_recall_39: 0.1342 Epoch 2/30 70/70 [==============================] - 12s 174ms/step - loss: 1.4506 - accuracy: 0.3991 - precision_39: 0.5418 - recall_39: 0.0950 - val_loss: 1.3574 - val_accuracy: 0.4751 - val_precision_39: 0.5764 - val_recall_39: 0.1991 Epoch 3/30 70/70 [==============================] - 12s 175ms/step - loss: 1.3452 - accuracy: 0.4664 - precision_39: 0.6141 - recall_39: 0.1866 - val_loss: 1.3347 - val_accuracy: 0.4706 - val_precision_39: 0.5905 - val_recall_39: 0.1870 Epoch 4/30 70/70 [==============================] - 12s 176ms/step - loss: 1.2426 - accuracy: 0.5238 - precision_39: 0.6428 - recall_39: 0.2714 - val_loss: 1.2553 - val_accuracy: 0.5173 - val_precision_39: 0.6640 - val_recall_39: 0.2474 Epoch 5/30 70/70 [==============================] - 12s 170ms/step - loss: 1.1908 - accuracy: 0.5117 - precision_39: 0.6715 - recall_39: 0.3304 - val_loss: 1.2431 - val_accuracy: 0.5249 - val_precision_39: 0.6402 - val_recall_39: 0.3650 Epoch 6/30 70/70 [==============================] - 12s 177ms/step - loss: 1.1177 - accuracy: 0.5441 - precision_39: 0.6769 - recall_39: 0.3706 - val_loss: 1.1764 - val_accuracy: 0.5611 - val_precision_39: 0.6494 - val_recall_39: 0.4359 Epoch 7/30 70/70 [==============================] - 12s 174ms/step - loss: 1.0495 - accuracy: 0.5880 - precision_39: 0.7041 - recall_39: 0.4536 - val_loss: 1.1257 - val_accuracy: 0.5928 - val_precision_39: 0.6673 - val_recall_39: 0.4932 Epoch 8/30 70/70 [==============================] - 12s 174ms/step - loss: 0.9066 - accuracy: 0.6431 - precision_39: 0.7315 - recall_39: 0.5136 - val_loss: 1.1288 - val_accuracy: 0.5701 - val_precision_39: 0.6981 - val_recall_39: 0.3906 Epoch 9/30 70/70 [==============================] - 12s 176ms/step - loss: 0.8633 - accuracy: 0.6639 - precision_39: 0.7685 - recall_39: 0.5643 - val_loss: 1.1284 - val_accuracy: 0.5641 - val_precision_39: 0.6815 - val_recall_39: 0.4615 Epoch 10/30 70/70 [==============================] - 12s 174ms/step - loss: 0.8026 - accuracy: 0.6966 - precision_39: 0.7788 - recall_39: 0.5885 - val_loss: 1.2125 - val_accuracy: 0.5913 - val_precision_39: 0.6470 - val_recall_39: 0.5445 Epoch 11/30 70/70 [==============================] - 12s 175ms/step - loss: 0.7849 - accuracy: 0.7059 - precision_39: 0.7776 - recall_39: 0.6099 - val_loss: 1.1172 - val_accuracy: 0.6320 - val_precision_39: 0.6790 - val_recall_39: 0.5520 Epoch 12/30 70/70 [==============================] - 12s 176ms/step - loss: 0.6096 - accuracy: 0.7739 - precision_39: 0.8413 - recall_39: 0.7142 - val_loss: 1.2781 - val_accuracy: 0.5928 - val_precision_39: 0.6195 - val_recall_39: 0.5551 Epoch 13/30 70/70 [==============================] - 12s 175ms/step - loss: 0.5272 - accuracy: 0.8064 - precision_39: 0.8562 - recall_39: 0.7593 - val_loss: 1.1747 - val_accuracy: 0.6305 - val_precision_39: 0.6806 - val_recall_39: 0.5882 Epoch 14/30 70/70 [==============================] - 12s 175ms/step - loss: 0.4237 - accuracy: 0.8434 - precision_39: 0.8801 - recall_39: 0.8137 - val_loss: 1.3776 - val_accuracy: 0.5566 - val_precision_39: 0.6071 - val_recall_39: 0.5128 Epoch 15/30 70/70 [==============================] - 12s 173ms/step - loss: 0.4401 - accuracy: 0.8352 - precision_39: 0.8820 - recall_39: 0.7900 - val_loss: 1.2800 - val_accuracy: 0.5943 - val_precision_39: 0.6239 - val_recall_39: 0.5581 Epoch 16/30 70/70 [==============================] - 13s 179ms/step - loss: 0.2780 - accuracy: 0.9044 - precision_39: 0.9223 - recall_39: 0.8739 - val_loss: 1.4743 - val_accuracy: 0.6048 - val_precision_39: 0.6267 - val_recall_39: 0.5671 Epoch 17/30 70/70 [==============================] - 12s 176ms/step - loss: 0.1974 - accuracy: 0.9352 - precision_39: 0.9505 - recall_39: 0.9240 - val_loss: 1.7463 - val_accuracy: 0.5716 - val_precision_39: 0.5825 - val_recall_39: 0.5430 Epoch 18/30 70/70 [==============================] - 12s 175ms/step - loss: 0.1558 - accuracy: 0.9477 - precision_39: 0.9557 - recall_39: 0.9344 - val_loss: 1.9270 - val_accuracy: 0.5852 - val_precision_39: 0.5987 - val_recall_39: 0.5716 Epoch 19/30 70/70 [==============================] - 12s 173ms/step - loss: 0.1512 - accuracy: 0.9510 - precision_39: 0.9531 - recall_39: 0.9434 - val_loss: 2.0287 - val_accuracy: 0.5913 - val_precision_39: 0.6082 - val_recall_39: 0.5807
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 1.9466347694396973 / Test accuracy: 0.6180555820465088
history = test_early_stop(path, [128],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_41" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_88 (Conv2D) (None, 254, 254, 128) 3584 _________________________________________________________________ max_pooling2d_44 (MaxPooling (None, 127, 127, 128) 0 _________________________________________________________________ flatten_40 (Flatten) (None, 2064512) 0 _________________________________________________________________ dense_56 (Dense) (None, 5) 10322565 ================================================================= Total params: 10,326,149 Trainable params: 10,326,149 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 14s 182ms/step - loss: 31.0026 - accuracy: 0.2252 - precision_40: 0.2038 - recall_40: 0.1261 - val_loss: 1.6231 - val_accuracy: 0.3017 - val_precision_40: 0.2727 - val_recall_40: 0.0090 Epoch 2/30 70/70 [==============================] - 12s 175ms/step - loss: 1.4319 - accuracy: 0.4632 - precision_40: 0.7076 - recall_40: 0.0686 - val_loss: 1.5230 - val_accuracy: 0.3801 - val_precision_40: 0.5169 - val_recall_40: 0.0920 Epoch 3/30 70/70 [==============================] - 12s 177ms/step - loss: 0.8607 - accuracy: 0.7314 - precision_40: 0.8950 - recall_40: 0.4654 - val_loss: 1.6155 - val_accuracy: 0.3997 - val_precision_40: 0.4419 - val_recall_40: 0.2066 Epoch 4/30 70/70 [==============================] - 12s 177ms/step - loss: 0.3132 - accuracy: 0.9309 - precision_40: 0.9776 - recall_40: 0.8514 - val_loss: 1.8422 - val_accuracy: 0.4238 - val_precision_40: 0.4717 - val_recall_40: 0.3137 Epoch 5/30 70/70 [==============================] - 12s 176ms/step - loss: 0.1077 - accuracy: 0.9874 - precision_40: 0.9944 - recall_40: 0.9661 - val_loss: 2.0697 - val_accuracy: 0.4480 - val_precision_40: 0.4686 - val_recall_40: 0.3831 Epoch 6/30 70/70 [==============================] - 12s 176ms/step - loss: 0.0445 - accuracy: 0.9968 - precision_40: 0.9968 - recall_40: 0.9947 - val_loss: 2.1553 - val_accuracy: 0.4253 - val_precision_40: 0.4466 - val_recall_40: 0.3846 Epoch 7/30 70/70 [==============================] - 12s 173ms/step - loss: 0.0288 - accuracy: 0.9976 - precision_40: 0.9976 - recall_40: 0.9974 - val_loss: 2.0581 - val_accuracy: 0.4329 - val_precision_40: 0.4592 - val_recall_40: 0.3650 Epoch 8/30 70/70 [==============================] - 12s 175ms/step - loss: 0.0207 - accuracy: 0.9987 - precision_40: 0.9987 - recall_40: 0.9987 - val_loss: 2.2145 - val_accuracy: 0.4148 - val_precision_40: 0.4366 - val_recall_40: 0.3635 Epoch 9/30 70/70 [==============================] - 12s 178ms/step - loss: 0.0203 - accuracy: 0.9977 - precision_40: 0.9977 - recall_40: 0.9977 - val_loss: 2.3066 - val_accuracy: 0.4268 - val_precision_40: 0.4448 - val_recall_40: 0.3771 Epoch 10/30 70/70 [==============================] - 12s 177ms/step - loss: 0.0144 - accuracy: 0.9979 - precision_40: 0.9979 - recall_40: 0.9979 - val_loss: 2.2705 - val_accuracy: 0.4615 - val_precision_40: 0.4617 - val_recall_40: 0.4178 Epoch 11/30 70/70 [==============================] - 12s 178ms/step - loss: 0.0400 - accuracy: 0.9967 - precision_40: 0.9967 - recall_40: 0.9967 - val_loss: 2.3728 - val_accuracy: 0.4057 - val_precision_40: 0.4288 - val_recall_40: 0.3544 Epoch 12/30 70/70 [==============================] - 12s 176ms/step - loss: 0.0164 - accuracy: 0.9983 - precision_40: 0.9983 - recall_40: 0.9983 - val_loss: 2.1612 - val_accuracy: 0.4299 - val_precision_40: 0.4562 - val_recall_40: 0.3695 Epoch 13/30 70/70 [==============================] - 12s 176ms/step - loss: 0.0160 - accuracy: 0.9986 - precision_40: 0.9986 - recall_40: 0.9986 - val_loss: 2.3537 - val_accuracy: 0.4329 - val_precision_40: 0.4477 - val_recall_40: 0.3876 Epoch 14/30 70/70 [==============================] - 12s 177ms/step - loss: 0.0130 - accuracy: 0.9979 - precision_40: 0.9979 - recall_40: 0.9979 - val_loss: 2.2800 - val_accuracy: 0.4193 - val_precision_40: 0.4526 - val_recall_40: 0.3741 Epoch 15/30 70/70 [==============================] - 12s 178ms/step - loss: 0.0135 - accuracy: 0.9990 - precision_40: 0.9990 - recall_40: 0.9990 - val_loss: 2.5033 - val_accuracy: 0.4148 - val_precision_40: 0.4368 - val_recall_40: 0.3756 Epoch 16/30 70/70 [==============================] - 12s 175ms/step - loss: 0.0101 - accuracy: 0.9986 - precision_40: 0.9986 - recall_40: 0.9986 - val_loss: 2.3017 - val_accuracy: 0.4434 - val_precision_40: 0.4637 - val_recall_40: 0.3952 Epoch 17/30 70/70 [==============================] - 12s 177ms/step - loss: 0.0158 - accuracy: 0.9980 - precision_40: 0.9980 - recall_40: 0.9980 - val_loss: 2.3024 - val_accuracy: 0.4465 - val_precision_40: 0.4664 - val_recall_40: 0.3982 Epoch 18/30 70/70 [==============================] - 12s 176ms/step - loss: 0.0075 - accuracy: 0.9993 - precision_40: 0.9993 - recall_40: 0.9993 - val_loss: 2.2991 - val_accuracy: 0.4314 - val_precision_40: 0.4505 - val_recall_40: 0.3771
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.1481478214263916 / Test accuracy: 0.46875
history = test_early_stop(path, [128,128],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_42" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_89 (Conv2D) (None, 254, 254, 128) 3584 _________________________________________________________________ max_pooling2d_45 (MaxPooling (None, 127, 127, 128) 0 _________________________________________________________________ conv2d_90 (Conv2D) (None, 125, 125, 128) 147584 _________________________________________________________________ max_pooling2d_46 (MaxPooling (None, 62, 62, 128) 0 _________________________________________________________________ flatten_41 (Flatten) (None, 492032) 0 _________________________________________________________________ dense_57 (Dense) (None, 5) 2460165 ================================================================= Total params: 2,611,333 Trainable params: 2,611,333 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 15s 201ms/step - loss: 3.0281 - accuracy: 0.2631 - precision_41: 0.2738 - recall_41: 0.0432 - val_loss: 1.6417 - val_accuracy: 0.2534 - val_precision_41: 0.4526 - val_recall_41: 0.1584 Epoch 2/30 70/70 [==============================] - 12s 178ms/step - loss: 1.5466 - accuracy: 0.3366 - precision_41: 0.5917 - recall_41: 0.0354 - val_loss: 1.4982 - val_accuracy: 0.4057 - val_precision_41: 0.5000 - val_recall_41: 0.0724 Epoch 3/30 70/70 [==============================] - 13s 179ms/step - loss: 1.3303 - accuracy: 0.4547 - precision_41: 0.6291 - recall_41: 0.1673 - val_loss: 1.4220 - val_accuracy: 0.4193 - val_precision_41: 0.5231 - val_recall_41: 0.1026 Epoch 4/30 70/70 [==============================] - 13s 180ms/step - loss: 1.0318 - accuracy: 0.6315 - precision_41: 0.7973 - recall_41: 0.3686 - val_loss: 1.5759 - val_accuracy: 0.4148 - val_precision_41: 0.5053 - val_recall_41: 0.2896 Epoch 5/30 70/70 [==============================] - 12s 178ms/step - loss: 0.7096 - accuracy: 0.7588 - precision_41: 0.8724 - recall_41: 0.6037 - val_loss: 1.9503 - val_accuracy: 0.3997 - val_precision_41: 0.4392 - val_recall_41: 0.3213 Epoch 6/30 70/70 [==============================] - 12s 174ms/step - loss: 0.3560 - accuracy: 0.8941 - precision_41: 0.9430 - recall_41: 0.8330 - val_loss: 2.4026 - val_accuracy: 0.3906 - val_precision_41: 0.4132 - val_recall_41: 0.3484 Epoch 7/30 70/70 [==============================] - 12s 176ms/step - loss: 0.1564 - accuracy: 0.9651 - precision_41: 0.9734 - recall_41: 0.9472 - val_loss: 2.9528 - val_accuracy: 0.3665 - val_precision_41: 0.3744 - val_recall_41: 0.3258 Epoch 8/30 70/70 [==============================] - 12s 175ms/step - loss: 0.0707 - accuracy: 0.9864 - precision_41: 0.9916 - recall_41: 0.9833 - val_loss: 3.3236 - val_accuracy: 0.4057 - val_precision_41: 0.4098 - val_recall_41: 0.3801 Epoch 9/30 70/70 [==============================] - 12s 174ms/step - loss: 0.0430 - accuracy: 0.9955 - precision_41: 0.9958 - recall_41: 0.9945 - val_loss: 3.7697 - val_accuracy: 0.3967 - val_precision_41: 0.4029 - val_recall_41: 0.3756 Epoch 10/30 70/70 [==============================] - 12s 176ms/step - loss: 0.0201 - accuracy: 0.9974 - precision_41: 0.9974 - recall_41: 0.9974 - val_loss: 3.7587 - val_accuracy: 0.3861 - val_precision_41: 0.3907 - val_recall_41: 0.3665 Epoch 11/30 70/70 [==============================] - 12s 176ms/step - loss: 0.0259 - accuracy: 0.9967 - precision_41: 0.9967 - recall_41: 0.9965 - val_loss: 4.1788 - val_accuracy: 0.4087 - val_precision_41: 0.4019 - val_recall_41: 0.3801
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.780939817428589 / Test accuracy: 0.4548611044883728
history = test_early_stop(path, [128,128,128],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_43" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_91 (Conv2D) (None, 254, 254, 128) 3584 _________________________________________________________________ max_pooling2d_47 (MaxPooling (None, 127, 127, 128) 0 _________________________________________________________________ conv2d_92 (Conv2D) (None, 125, 125, 128) 147584 _________________________________________________________________ max_pooling2d_48 (MaxPooling (None, 62, 62, 128) 0 _________________________________________________________________ conv2d_93 (Conv2D) (None, 60, 60, 128) 147584 _________________________________________________________________ max_pooling2d_49 (MaxPooling (None, 30, 30, 128) 0 _________________________________________________________________ flatten_42 (Flatten) (None, 115200) 0 _________________________________________________________________ dense_58 (Dense) (None, 5) 576005 ================================================================= Total params: 874,757 Trainable params: 874,757 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 14s 186ms/step - loss: 1.7745 - accuracy: 0.2547 - precision_42: 0.3054 - recall_42: 0.0347 - val_loss: 1.4374 - val_accuracy: 0.4072 - val_precision_42: 0.6313 - val_recall_42: 0.1523 Epoch 2/30 70/70 [==============================] - 12s 177ms/step - loss: 1.3606 - accuracy: 0.4388 - precision_42: 0.6279 - recall_42: 0.1723 - val_loss: 1.3286 - val_accuracy: 0.4661 - val_precision_42: 0.6273 - val_recall_42: 0.2564 Epoch 3/30 70/70 [==============================] - 13s 179ms/step - loss: 1.2038 - accuracy: 0.5507 - precision_42: 0.6722 - recall_42: 0.3109 - val_loss: 1.3290 - val_accuracy: 0.4751 - val_precision_42: 0.5619 - val_recall_42: 0.2670 Epoch 4/30 70/70 [==============================] - 12s 178ms/step - loss: 1.0449 - accuracy: 0.6155 - precision_42: 0.7182 - recall_42: 0.4221 - val_loss: 1.3625 - val_accuracy: 0.4842 - val_precision_42: 0.5872 - val_recall_42: 0.3605 Epoch 5/30 70/70 [==============================] - 12s 177ms/step - loss: 0.7815 - accuracy: 0.7062 - precision_42: 0.8094 - recall_42: 0.5911 - val_loss: 1.4746 - val_accuracy: 0.5083 - val_precision_42: 0.5465 - val_recall_42: 0.4163 Epoch 6/30 70/70 [==============================] - 12s 174ms/step - loss: 0.4923 - accuracy: 0.8321 - precision_42: 0.8888 - recall_42: 0.7698 - val_loss: 1.7955 - val_accuracy: 0.4917 - val_precision_42: 0.5313 - val_recall_42: 0.4480 Epoch 7/30 70/70 [==============================] - 12s 178ms/step - loss: 0.3186 - accuracy: 0.8881 - precision_42: 0.9155 - recall_42: 0.8484 - val_loss: 2.2975 - val_accuracy: 0.4962 - val_precision_42: 0.5081 - val_recall_42: 0.4751 Epoch 8/30 70/70 [==============================] - 12s 172ms/step - loss: 0.1421 - accuracy: 0.9592 - precision_42: 0.9686 - recall_42: 0.9469 - val_loss: 2.7637 - val_accuracy: 0.4947 - val_precision_42: 0.5040 - val_recall_42: 0.4736 Epoch 9/30 70/70 [==============================] - 12s 177ms/step - loss: 0.1078 - accuracy: 0.9725 - precision_42: 0.9789 - recall_42: 0.9681 - val_loss: 3.1499 - val_accuracy: 0.4887 - val_precision_42: 0.5047 - val_recall_42: 0.4842 Epoch 10/30 70/70 [==============================] - 12s 178ms/step - loss: 0.0610 - accuracy: 0.9844 - precision_42: 0.9871 - recall_42: 0.9806 - val_loss: 3.3416 - val_accuracy: 0.4630 - val_precision_42: 0.4697 - val_recall_42: 0.4555 Epoch 11/30 70/70 [==============================] - 13s 179ms/step - loss: 0.0420 - accuracy: 0.9977 - precision_42: 0.9977 - recall_42: 0.9971 - val_loss: 3.9894 - val_accuracy: 0.4736 - val_precision_42: 0.4792 - val_recall_42: 0.4691 Epoch 12/30 70/70 [==============================] - 12s 178ms/step - loss: 0.0395 - accuracy: 0.9897 - precision_42: 0.9899 - recall_42: 0.9891 - val_loss: 3.5720 - val_accuracy: 0.4887 - val_precision_42: 0.5008 - val_recall_42: 0.4857 Epoch 13/30 70/70 [==============================] - 12s 178ms/step - loss: 0.0231 - accuracy: 0.9977 - precision_42: 0.9977 - recall_42: 0.9977 - val_loss: 3.4601 - val_accuracy: 0.4691 - val_precision_42: 0.4743 - val_recall_42: 0.4600
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.2592039108276367 / Test accuracy: 0.4895833432674408
history = test_early_stop(path, [128,128,128,128],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_44" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_94 (Conv2D) (None, 254, 254, 128) 3584 _________________________________________________________________ max_pooling2d_50 (MaxPooling (None, 127, 127, 128) 0 _________________________________________________________________ conv2d_95 (Conv2D) (None, 125, 125, 128) 147584 _________________________________________________________________ max_pooling2d_51 (MaxPooling (None, 62, 62, 128) 0 _________________________________________________________________ conv2d_96 (Conv2D) (None, 60, 60, 128) 147584 _________________________________________________________________ max_pooling2d_52 (MaxPooling (None, 30, 30, 128) 0 _________________________________________________________________ conv2d_97 (Conv2D) (None, 28, 28, 128) 147584 _________________________________________________________________ max_pooling2d_53 (MaxPooling (None, 14, 14, 128) 0 _________________________________________________________________ flatten_43 (Flatten) (None, 25088) 0 _________________________________________________________________ dense_59 (Dense) (None, 5) 125445 ================================================================= Total params: 571,781 Trainable params: 571,781 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 14s 187ms/step - loss: 1.6070 - accuracy: 0.2613 - precision_43: 0.2139 - recall_43: 0.0118 - val_loss: 1.4423 - val_accuracy: 0.4600 - val_precision_43: 0.3750 - val_recall_43: 0.0045 Epoch 2/30 70/70 [==============================] - 12s 178ms/step - loss: 1.4077 - accuracy: 0.4395 - precision_43: 0.5584 - recall_43: 0.1098 - val_loss: 1.5076 - val_accuracy: 0.3771 - val_precision_43: 0.0000e+00 - val_recall_43: 0.0000e+00 Epoch 3/30 70/70 [==============================] - 12s 176ms/step - loss: 1.3647 - accuracy: 0.4779 - precision_43: 0.5894 - recall_43: 0.1493 - val_loss: 1.2778 - val_accuracy: 0.5083 - val_precision_43: 0.6281 - val_recall_43: 0.3439 Epoch 4/30 70/70 [==============================] - 12s 177ms/step - loss: 1.1852 - accuracy: 0.5423 - precision_43: 0.6737 - recall_43: 0.3377 - val_loss: 1.3008 - val_accuracy: 0.5294 - val_precision_43: 0.6327 - val_recall_43: 0.2624 Epoch 5/30 70/70 [==============================] - 12s 178ms/step - loss: 1.1032 - accuracy: 0.5748 - precision_43: 0.6883 - recall_43: 0.3851 - val_loss: 1.1987 - val_accuracy: 0.5400 - val_precision_43: 0.6098 - val_recall_43: 0.4314 Epoch 6/30 70/70 [==============================] - 12s 178ms/step - loss: 0.8631 - accuracy: 0.6748 - precision_43: 0.7709 - recall_43: 0.5548 - val_loss: 1.2721 - val_accuracy: 0.5354 - val_precision_43: 0.6211 - val_recall_43: 0.4525 Epoch 7/30 70/70 [==============================] - 12s 177ms/step - loss: 0.7049 - accuracy: 0.7372 - precision_43: 0.8098 - recall_43: 0.6556 - val_loss: 1.2596 - val_accuracy: 0.5324 - val_precision_43: 0.6155 - val_recall_43: 0.4661 Epoch 8/30 70/70 [==============================] - 12s 178ms/step - loss: 0.4592 - accuracy: 0.8494 - precision_43: 0.8814 - recall_43: 0.7953 - val_loss: 1.5379 - val_accuracy: 0.5535 - val_precision_43: 0.5930 - val_recall_43: 0.5143 Epoch 9/30 70/70 [==============================] - 13s 179ms/step - loss: 0.2845 - accuracy: 0.9093 - precision_43: 0.9317 - recall_43: 0.8856 - val_loss: 1.8866 - val_accuracy: 0.5551 - val_precision_43: 0.5777 - val_recall_43: 0.5158 Epoch 10/30 70/70 [==============================] - 12s 177ms/step - loss: 0.2322 - accuracy: 0.9183 - precision_43: 0.9389 - recall_43: 0.9056 - val_loss: 2.2595 - val_accuracy: 0.5671 - val_precision_43: 0.5843 - val_recall_43: 0.5490 Epoch 11/30 70/70 [==============================] - 12s 179ms/step - loss: 0.1218 - accuracy: 0.9622 - precision_43: 0.9652 - recall_43: 0.9588 - val_loss: 2.9478 - val_accuracy: 0.5234 - val_precision_43: 0.5293 - val_recall_43: 0.5173 Epoch 12/30 70/70 [==============================] - 13s 180ms/step - loss: 0.0558 - accuracy: 0.9841 - precision_43: 0.9896 - recall_43: 0.9829 - val_loss: 3.0596 - val_accuracy: 0.5535 - val_precision_43: 0.5625 - val_recall_43: 0.5430 Epoch 13/30 70/70 [==============================] - 13s 180ms/step - loss: 0.0667 - accuracy: 0.9838 - precision_43: 0.9860 - recall_43: 0.9835 - val_loss: 3.0242 - val_accuracy: 0.5143 - val_precision_43: 0.5228 - val_recall_43: 0.5023 Epoch 14/30 70/70 [==============================] - 12s 178ms/step - loss: 0.0597 - accuracy: 0.9890 - precision_43: 0.9906 - recall_43: 0.9856 - val_loss: 3.2509 - val_accuracy: 0.5415 - val_precision_43: 0.5497 - val_recall_43: 0.5339 Epoch 15/30 70/70 [==============================] - 12s 177ms/step - loss: 0.0343 - accuracy: 0.9968 - precision_43: 0.9968 - recall_43: 0.9965 - val_loss: 3.8028 - val_accuracy: 0.5535 - val_precision_43: 0.5590 - val_recall_43: 0.5505 Epoch 16/30 70/70 [==============================] - 13s 179ms/step - loss: 0.0293 - accuracy: 0.9964 - precision_43: 0.9964 - recall_43: 0.9964 - val_loss: 4.1864 - val_accuracy: 0.5189 - val_precision_43: 0.5238 - val_recall_43: 0.5143 Epoch 17/30 70/70 [==============================] - 12s 177ms/step - loss: 0.0677 - accuracy: 0.9810 - precision_43: 0.9810 - recall_43: 0.9810 - val_loss: 3.8723 - val_accuracy: 0.5354 - val_precision_43: 0.5407 - val_recall_43: 0.5309 Epoch 18/30 70/70 [==============================] - 13s 179ms/step - loss: 0.0582 - accuracy: 0.9808 - precision_43: 0.9819 - recall_43: 0.9799 - val_loss: 3.5254 - val_accuracy: 0.5264 - val_precision_43: 0.5332 - val_recall_43: 0.5204
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.0386593341827393 / Test accuracy: 0.5555555820465088
history = test_early_stop(path, [128,128,128,128,128],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_45" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_98 (Conv2D) (None, 254, 254, 128) 3584 _________________________________________________________________ max_pooling2d_54 (MaxPooling (None, 127, 127, 128) 0 _________________________________________________________________ conv2d_99 (Conv2D) (None, 125, 125, 128) 147584 _________________________________________________________________ max_pooling2d_55 (MaxPooling (None, 62, 62, 128) 0 _________________________________________________________________ conv2d_100 (Conv2D) (None, 60, 60, 128) 147584 _________________________________________________________________ max_pooling2d_56 (MaxPooling (None, 30, 30, 128) 0 _________________________________________________________________ conv2d_101 (Conv2D) (None, 28, 28, 128) 147584 _________________________________________________________________ max_pooling2d_57 (MaxPooling (None, 14, 14, 128) 0 _________________________________________________________________ conv2d_102 (Conv2D) (None, 12, 12, 128) 147584 _________________________________________________________________ max_pooling2d_58 (MaxPooling (None, 6, 6, 128) 0 _________________________________________________________________ flatten_44 (Flatten) (None, 4608) 0 _________________________________________________________________ dense_60 (Dense) (None, 5) 23045 ================================================================= Total params: 616,965 Trainable params: 616,965 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 14s 186ms/step - loss: 1.6050 - accuracy: 0.2450 - precision_44: 0.0377 - recall_44: 2.8773e-04 - val_loss: 1.5291 - val_accuracy: 0.3514 - val_precision_44: 0.0000e+00 - val_recall_44: 0.0000e+00 Epoch 2/30 70/70 [==============================] - 12s 178ms/step - loss: 1.4643 - accuracy: 0.3828 - precision_44: 0.5076 - recall_44: 0.0616 - val_loss: 1.3884 - val_accuracy: 0.4253 - val_precision_44: 0.6292 - val_recall_44: 0.1689 Epoch 3/30 70/70 [==============================] - 13s 180ms/step - loss: 1.3608 - accuracy: 0.4640 - precision_44: 0.5857 - recall_44: 0.1789 - val_loss: 1.3486 - val_accuracy: 0.5098 - val_precision_44: 0.5796 - val_recall_44: 0.3680 Epoch 4/30 70/70 [==============================] - 13s 179ms/step - loss: 1.3081 - accuracy: 0.5040 - precision_44: 0.6037 - recall_44: 0.2510 - val_loss: 1.3098 - val_accuracy: 0.5068 - val_precision_44: 0.6005 - val_recall_44: 0.3514 Epoch 5/30 70/70 [==============================] - 12s 178ms/step - loss: 1.2111 - accuracy: 0.5375 - precision_44: 0.6431 - recall_44: 0.3469 - val_loss: 1.3235 - val_accuracy: 0.4585 - val_precision_44: 0.6062 - val_recall_44: 0.2368 Epoch 6/30 70/70 [==============================] - 13s 179ms/step - loss: 1.1316 - accuracy: 0.5713 - precision_44: 0.7200 - recall_44: 0.3786 - val_loss: 1.2446 - val_accuracy: 0.5279 - val_precision_44: 0.6238 - val_recall_44: 0.3801 Epoch 7/30 70/70 [==============================] - 13s 180ms/step - loss: 1.0461 - accuracy: 0.5964 - precision_44: 0.7184 - recall_44: 0.4445 - val_loss: 1.2144 - val_accuracy: 0.5475 - val_precision_44: 0.6357 - val_recall_44: 0.3922 Epoch 8/30 70/70 [==============================] - 13s 182ms/step - loss: 0.9765 - accuracy: 0.6202 - precision_44: 0.7309 - recall_44: 0.4654 - val_loss: 1.2217 - val_accuracy: 0.5264 - val_precision_44: 0.6036 - val_recall_44: 0.4087 Epoch 9/30 70/70 [==============================] - 13s 180ms/step - loss: 0.8760 - accuracy: 0.6572 - precision_44: 0.7505 - recall_44: 0.5512 - val_loss: 1.2677 - val_accuracy: 0.5128 - val_precision_44: 0.5958 - val_recall_44: 0.3891 Epoch 10/30 70/70 [==============================] - 13s 180ms/step - loss: 0.8595 - accuracy: 0.6658 - precision_44: 0.7561 - recall_44: 0.5381 - val_loss: 1.2466 - val_accuracy: 0.5535 - val_precision_44: 0.6201 - val_recall_44: 0.4751 Epoch 11/30 70/70 [==============================] - 13s 178ms/step - loss: 0.7136 - accuracy: 0.7341 - precision_44: 0.7940 - recall_44: 0.6440 - val_loss: 1.1980 - val_accuracy: 0.5520 - val_precision_44: 0.6395 - val_recall_44: 0.4736 Epoch 12/30 70/70 [==============================] - 12s 177ms/step - loss: 0.6084 - accuracy: 0.7756 - precision_44: 0.8293 - recall_44: 0.7127 - val_loss: 1.3012 - val_accuracy: 0.5897 - val_precision_44: 0.6254 - val_recall_44: 0.5415 Epoch 13/30 70/70 [==============================] - 12s 177ms/step - loss: 0.5150 - accuracy: 0.8177 - precision_44: 0.8718 - recall_44: 0.7646 - val_loss: 1.4293 - val_accuracy: 0.5747 - val_precision_44: 0.6147 - val_recall_44: 0.5294 Epoch 14/30 70/70 [==============================] - 12s 176ms/step - loss: 0.4147 - accuracy: 0.8465 - precision_44: 0.8801 - recall_44: 0.8140 - val_loss: 1.4852 - val_accuracy: 0.5822 - val_precision_44: 0.6163 - val_recall_44: 0.5475 Epoch 15/30 70/70 [==============================] - 12s 173ms/step - loss: 0.3103 - accuracy: 0.8870 - precision_44: 0.9134 - recall_44: 0.8595 - val_loss: 1.6498 - val_accuracy: 0.5701 - val_precision_44: 0.6003 - val_recall_44: 0.5279 Epoch 16/30 70/70 [==============================] - 12s 178ms/step - loss: 0.2431 - accuracy: 0.9158 - precision_44: 0.9343 - recall_44: 0.8974 - val_loss: 2.1037 - val_accuracy: 0.5475 - val_precision_44: 0.5641 - val_recall_44: 0.5309 Epoch 17/30 70/70 [==============================] - 12s 177ms/step - loss: 0.2247 - accuracy: 0.9230 - precision_44: 0.9370 - recall_44: 0.9129 - val_loss: 2.0092 - val_accuracy: 0.5777 - val_precision_44: 0.5951 - val_recall_44: 0.5520 Epoch 18/30 70/70 [==============================] - 12s 178ms/step - loss: 0.1622 - accuracy: 0.9584 - precision_44: 0.9677 - recall_44: 0.9468 - val_loss: 2.6108 - val_accuracy: 0.5641 - val_precision_44: 0.5705 - val_recall_44: 0.5551 Epoch 19/30 70/70 [==============================] - 13s 180ms/step - loss: 0.1032 - accuracy: 0.9663 - precision_44: 0.9701 - recall_44: 0.9637 - val_loss: 2.7137 - val_accuracy: 0.5520 - val_precision_44: 0.5645 - val_recall_44: 0.5415 Epoch 20/30 70/70 [==============================] - 13s 183ms/step - loss: 0.0893 - accuracy: 0.9700 - precision_44: 0.9720 - recall_44: 0.9654 - val_loss: 3.1822 - val_accuracy: 0.5566 - val_precision_44: 0.5639 - val_recall_44: 0.5520
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.0249531269073486 / Test accuracy: 0.6076388955116272
history = test_early_stop(path, [128,128,128,128,128,128],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_46" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_103 (Conv2D) (None, 254, 254, 128) 3584 _________________________________________________________________ max_pooling2d_59 (MaxPooling (None, 127, 127, 128) 0 _________________________________________________________________ conv2d_104 (Conv2D) (None, 125, 125, 128) 147584 _________________________________________________________________ max_pooling2d_60 (MaxPooling (None, 62, 62, 128) 0 _________________________________________________________________ conv2d_105 (Conv2D) (None, 60, 60, 128) 147584 _________________________________________________________________ max_pooling2d_61 (MaxPooling (None, 30, 30, 128) 0 _________________________________________________________________ conv2d_106 (Conv2D) (None, 28, 28, 128) 147584 _________________________________________________________________ max_pooling2d_62 (MaxPooling (None, 14, 14, 128) 0 _________________________________________________________________ conv2d_107 (Conv2D) (None, 12, 12, 128) 147584 _________________________________________________________________ max_pooling2d_63 (MaxPooling (None, 6, 6, 128) 0 _________________________________________________________________ conv2d_108 (Conv2D) (None, 4, 4, 128) 147584 _________________________________________________________________ max_pooling2d_64 (MaxPooling (None, 2, 2, 128) 0 _________________________________________________________________ flatten_45 (Flatten) (None, 512) 0 _________________________________________________________________ dense_61 (Dense) (None, 5) 2565 ================================================================= Total params: 744,069 Trainable params: 744,069 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 14s 190ms/step - loss: 1.5987 - accuracy: 0.2530 - precision_45: 0.0554 - recall_45: 3.6308e-04 - val_loss: 1.5030 - val_accuracy: 0.3891 - val_precision_45: 0.5061 - val_recall_45: 0.1252 Epoch 2/30 70/70 [==============================] - 13s 187ms/step - loss: 1.4682 - accuracy: 0.3813 - precision_45: 0.5577 - recall_45: 0.0797 - val_loss: 1.4821 - val_accuracy: 0.4057 - val_precision_45: 0.5077 - val_recall_45: 0.2474 Epoch 3/30 70/70 [==============================] - 13s 179ms/step - loss: 1.3533 - accuracy: 0.4758 - precision_45: 0.5774 - recall_45: 0.2088 - val_loss: 1.4301 - val_accuracy: 0.4133 - val_precision_45: 0.5827 - val_recall_45: 0.1222 Epoch 4/30 70/70 [==============================] - 13s 180ms/step - loss: 1.3089 - accuracy: 0.4820 - precision_45: 0.6202 - recall_45: 0.2362 - val_loss: 1.2987 - val_accuracy: 0.5143 - val_precision_45: 0.6194 - val_recall_45: 0.2896 Epoch 5/30 70/70 [==============================] - 12s 178ms/step - loss: 1.1790 - accuracy: 0.5527 - precision_45: 0.6762 - recall_45: 0.3603 - val_loss: 1.2918 - val_accuracy: 0.5158 - val_precision_45: 0.6067 - val_recall_45: 0.3560 Epoch 6/30 70/70 [==============================] - 12s 178ms/step - loss: 1.1683 - accuracy: 0.5595 - precision_45: 0.6412 - recall_45: 0.3458 - val_loss: 1.2516 - val_accuracy: 0.5249 - val_precision_45: 0.6546 - val_recall_45: 0.3002 Epoch 7/30 70/70 [==============================] - 13s 180ms/step - loss: 1.0890 - accuracy: 0.5653 - precision_45: 0.6998 - recall_45: 0.4161 - val_loss: 1.1860 - val_accuracy: 0.5354 - val_precision_45: 0.6566 - val_recall_45: 0.3952 Epoch 8/30 70/70 [==============================] - 12s 179ms/step - loss: 1.0151 - accuracy: 0.6054 - precision_45: 0.7086 - recall_45: 0.4685 - val_loss: 1.2366 - val_accuracy: 0.5370 - val_precision_45: 0.6020 - val_recall_45: 0.4585 Epoch 9/30 70/70 [==============================] - 13s 181ms/step - loss: 0.8891 - accuracy: 0.6518 - precision_45: 0.7518 - recall_45: 0.5495 - val_loss: 1.2659 - val_accuracy: 0.5339 - val_precision_45: 0.5988 - val_recall_45: 0.4480 Epoch 10/30 70/70 [==============================] - 12s 180ms/step - loss: 0.8732 - accuracy: 0.6693 - precision_45: 0.7614 - recall_45: 0.5569 - val_loss: 1.2913 - val_accuracy: 0.5354 - val_precision_45: 0.6026 - val_recall_45: 0.4253 Epoch 11/30 70/70 [==============================] - 12s 178ms/step - loss: 0.7473 - accuracy: 0.7176 - precision_45: 0.7995 - recall_45: 0.6263 - val_loss: 1.3437 - val_accuracy: 0.5430 - val_precision_45: 0.5957 - val_recall_45: 0.4977 Epoch 12/30 70/70 [==============================] - 13s 182ms/step - loss: 0.5971 - accuracy: 0.7719 - precision_45: 0.8379 - recall_45: 0.7073 - val_loss: 1.2632 - val_accuracy: 0.5701 - val_precision_45: 0.6281 - val_recall_45: 0.4917 Epoch 13/30 70/70 [==============================] - 13s 178ms/step - loss: 0.5089 - accuracy: 0.8056 - precision_45: 0.8596 - recall_45: 0.7491 - val_loss: 1.3541 - val_accuracy: 0.5671 - val_precision_45: 0.6295 - val_recall_45: 0.5279 Epoch 14/30 70/70 [==============================] - 13s 182ms/step - loss: 0.4240 - accuracy: 0.8411 - precision_45: 0.8755 - recall_45: 0.8013 - val_loss: 1.5106 - val_accuracy: 0.5792 - val_precision_45: 0.6118 - val_recall_45: 0.5490 Epoch 15/30 70/70 [==============================] - 13s 178ms/step - loss: 0.2995 - accuracy: 0.8878 - precision_45: 0.9070 - recall_45: 0.8613 - val_loss: 1.5174 - val_accuracy: 0.5973 - val_precision_45: 0.6236 - val_recall_45: 0.5747 Epoch 16/30 70/70 [==============================] - 12s 177ms/step - loss: 0.2571 - accuracy: 0.9056 - precision_45: 0.9240 - recall_45: 0.8845 - val_loss: 1.9299 - val_accuracy: 0.5671 - val_precision_45: 0.5849 - val_recall_45: 0.5505 Epoch 17/30 70/70 [==============================] - 13s 179ms/step - loss: 0.1334 - accuracy: 0.9547 - precision_45: 0.9630 - recall_45: 0.9466 - val_loss: 2.1616 - val_accuracy: 0.5656 - val_precision_45: 0.5750 - val_recall_45: 0.5490 Epoch 18/30 70/70 [==============================] - 12s 177ms/step - loss: 0.2315 - accuracy: 0.9281 - precision_45: 0.9401 - recall_45: 0.9150 - val_loss: 2.3641 - val_accuracy: 0.5747 - val_precision_45: 0.5828 - val_recall_45: 0.5626 Epoch 19/30 70/70 [==============================] - 13s 179ms/step - loss: 0.0678 - accuracy: 0.9814 - precision_45: 0.9825 - recall_45: 0.9801 - val_loss: 2.5896 - val_accuracy: 0.5762 - val_precision_45: 0.5915 - val_recall_45: 0.5701 Epoch 20/30 70/70 [==============================] - 12s 178ms/step - loss: 0.1229 - accuracy: 0.9617 - precision_45: 0.9675 - recall_45: 0.9567 - val_loss: 2.3622 - val_accuracy: 0.6078 - val_precision_45: 0.6149 - val_recall_45: 0.5973 Epoch 21/30 70/70 [==============================] - 12s 179ms/step - loss: 0.0914 - accuracy: 0.9740 - precision_45: 0.9786 - recall_45: 0.9699 - val_loss: 2.4134 - val_accuracy: 0.6003 - val_precision_45: 0.6053 - val_recall_45: 0.5852 Epoch 22/30 70/70 [==============================] - 13s 180ms/step - loss: 0.1185 - accuracy: 0.9645 - precision_45: 0.9702 - recall_45: 0.9630 - val_loss: 2.3886 - val_accuracy: 0.5611 - val_precision_45: 0.5683 - val_recall_45: 0.5520 Epoch 23/30 70/70 [==============================] - 13s 179ms/step - loss: 0.0657 - accuracy: 0.9786 - precision_45: 0.9824 - recall_45: 0.9786 - val_loss: 2.6961 - val_accuracy: 0.5837 - val_precision_45: 0.5892 - val_recall_45: 0.5777 Epoch 24/30 70/70 [==============================] - 13s 179ms/step - loss: 0.0315 - accuracy: 0.9936 - precision_45: 0.9949 - recall_45: 0.9934 - val_loss: 2.5694 - val_accuracy: 0.5671 - val_precision_45: 0.5783 - val_recall_45: 0.5626 Epoch 25/30 70/70 [==============================] - 13s 180ms/step - loss: 0.0489 - accuracy: 0.9909 - precision_45: 0.9909 - recall_45: 0.9890 - val_loss: 2.7002 - val_accuracy: 0.5988 - val_precision_45: 0.6081 - val_recall_45: 0.5897 Epoch 26/30 70/70 [==============================] - 13s 180ms/step - loss: 0.0952 - accuracy: 0.9718 - precision_45: 0.9747 - recall_45: 0.9713 - val_loss: 2.5748 - val_accuracy: 0.5686 - val_precision_45: 0.5846 - val_recall_45: 0.5626 Epoch 27/30 70/70 [==============================] - 13s 180ms/step - loss: 0.0458 - accuracy: 0.9924 - precision_45: 0.9927 - recall_45: 0.9921 - val_loss: 2.7732 - val_accuracy: 0.5460 - val_precision_45: 0.5471 - val_recall_45: 0.5339 Epoch 28/30 70/70 [==============================] - 13s 179ms/step - loss: 0.0638 - accuracy: 0.9842 - precision_45: 0.9848 - recall_45: 0.9828 - val_loss: 2.4931 - val_accuracy: 0.5701 - val_precision_45: 0.5760 - val_recall_45: 0.5656
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.0992560386657715 / Test accuracy: 0.6354166865348816
history = test_early_stop(path, [256],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_48" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_110 (Conv2D) (None, 254, 254, 256) 7168 _________________________________________________________________ max_pooling2d_66 (MaxPooling (None, 127, 127, 256) 0 _________________________________________________________________ flatten_47 (Flatten) (None, 4129024) 0 _________________________________________________________________ dense_63 (Dense) (None, 5) 20645125 ================================================================= Total params: 20,652,293 Trainable params: 20,652,293 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 15s 196ms/step - loss: 24.3211 - accuracy: 0.2343 - precision_47: 0.2174 - recall_47: 0.1042 - val_loss: 1.5238 - val_accuracy: 0.3514 - val_precision_47: 0.5464 - val_recall_47: 0.0799 Epoch 2/30 70/70 [==============================] - 13s 188ms/step - loss: 1.2141 - accuracy: 0.5461 - precision_47: 0.7654 - recall_47: 0.2076 - val_loss: 1.4226 - val_accuracy: 0.4284 - val_precision_47: 0.5320 - val_recall_47: 0.2760 Epoch 3/30 70/70 [==============================] - 13s 187ms/step - loss: 0.5258 - accuracy: 0.8499 - precision_47: 0.9222 - recall_47: 0.7216 - val_loss: 1.5609 - val_accuracy: 0.4902 - val_precision_47: 0.5542 - val_recall_47: 0.3394 Epoch 4/30 70/70 [==============================] - 13s 186ms/step - loss: 0.1942 - accuracy: 0.9577 - precision_47: 0.9771 - recall_47: 0.9171 - val_loss: 1.8888 - val_accuracy: 0.4525 - val_precision_47: 0.4882 - val_recall_47: 0.3741 Epoch 5/30 70/70 [==============================] - 13s 187ms/step - loss: 0.0581 - accuracy: 0.9939 - precision_47: 0.9969 - recall_47: 0.9917 - val_loss: 2.2231 - val_accuracy: 0.4615 - val_precision_47: 0.4826 - val_recall_47: 0.3967 Epoch 6/30 70/70 [==============================] - 13s 187ms/step - loss: 0.0449 - accuracy: 0.9948 - precision_47: 0.9982 - recall_47: 0.9947 - val_loss: 2.2034 - val_accuracy: 0.4766 - val_precision_47: 0.4875 - val_recall_47: 0.4133 Epoch 7/30 70/70 [==============================] - 13s 188ms/step - loss: 0.0264 - accuracy: 0.9975 - precision_47: 0.9975 - recall_47: 0.9975 - val_loss: 2.4255 - val_accuracy: 0.4540 - val_precision_47: 0.4640 - val_recall_47: 0.4087 Epoch 8/30 70/70 [==============================] - 13s 187ms/step - loss: 0.0100 - accuracy: 0.9992 - precision_47: 0.9992 - recall_47: 0.9992 - val_loss: 2.3141 - val_accuracy: 0.4540 - val_precision_47: 0.4801 - val_recall_47: 0.4193 Epoch 9/30 70/70 [==============================] - 13s 190ms/step - loss: 0.0056 - accuracy: 0.9998 - precision_47: 0.9998 - recall_47: 0.9998 - val_loss: 2.2505 - val_accuracy: 0.4902 - val_precision_47: 0.5009 - val_recall_47: 0.4329 Epoch 10/30 70/70 [==============================] - 13s 187ms/step - loss: 0.0178 - accuracy: 0.9981 - precision_47: 0.9981 - recall_47: 0.9981 - val_loss: 2.2491 - val_accuracy: 0.4585 - val_precision_47: 0.4973 - val_recall_47: 0.4163 Epoch 11/30 70/70 [==============================] - 13s 185ms/step - loss: 0.0095 - accuracy: 0.9991 - precision_47: 0.9991 - recall_47: 0.9991 - val_loss: 2.1998 - val_accuracy: 0.4525 - val_precision_47: 0.4776 - val_recall_47: 0.4012
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.0706303119659424 / Test accuracy: 0.5069444179534912
history = test_early_stop(path, [256,256],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_49" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_111 (Conv2D) (None, 254, 254, 256) 7168 _________________________________________________________________ max_pooling2d_67 (MaxPooling (None, 127, 127, 256) 0 _________________________________________________________________ conv2d_112 (Conv2D) (None, 125, 125, 256) 590080 _________________________________________________________________ max_pooling2d_68 (MaxPooling (None, 62, 62, 256) 0 _________________________________________________________________ flatten_48 (Flatten) (None, 984064) 0 _________________________________________________________________ dense_64 (Dense) (None, 5) 4920325 ================================================================= Total params: 5,517,573 Trainable params: 5,517,573 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 22s 291ms/step - loss: 4.4624 - accuracy: 0.2328 - precision_48: 0.2037 - recall_48: 0.0311 - val_loss: 1.6069 - val_accuracy: 0.2428 - val_precision_48: 0.0000e+00 - val_recall_48: 0.0000e+00 Epoch 2/30 70/70 [==============================] - 17s 237ms/step - loss: 1.6049 - accuracy: 0.2567 - precision_48: 0.1757 - recall_48: 0.0018 - val_loss: 1.6043 - val_accuracy: 0.2941 - val_precision_48: 0.0000e+00 - val_recall_48: 0.0000e+00 Epoch 3/30 70/70 [==============================] - 16s 234ms/step - loss: 1.5687 - accuracy: 0.3235 - precision_48: 0.2702 - recall_48: 0.0083 - val_loss: 1.6237 - val_accuracy: 0.2956 - val_precision_48: 0.2966 - val_recall_48: 0.0528 Epoch 4/30 70/70 [==============================] - 17s 236ms/step - loss: 1.2312 - accuracy: 0.5264 - precision_48: 0.7790 - recall_48: 0.1984 - val_loss: 1.6243 - val_accuracy: 0.3499 - val_precision_48: 0.4176 - val_recall_48: 0.1146 Epoch 5/30 70/70 [==============================] - 17s 237ms/step - loss: 0.7965 - accuracy: 0.7328 - precision_48: 0.8750 - recall_48: 0.5496 - val_loss: 1.9251 - val_accuracy: 0.3529 - val_precision_48: 0.3917 - val_recall_48: 0.1991 Epoch 6/30 70/70 [==============================] - 17s 237ms/step - loss: 0.4931 - accuracy: 0.8483 - precision_48: 0.9325 - recall_48: 0.7353 - val_loss: 2.6763 - val_accuracy: 0.3786 - val_precision_48: 0.4043 - val_recall_48: 0.3092 Epoch 7/30 70/70 [==============================] - 17s 236ms/step - loss: 0.2762 - accuracy: 0.9276 - precision_48: 0.9696 - recall_48: 0.8746 - val_loss: 3.1895 - val_accuracy: 0.3741 - val_precision_48: 0.3895 - val_recall_48: 0.3243 Epoch 8/30 70/70 [==============================] - 17s 237ms/step - loss: 0.1372 - accuracy: 0.9692 - precision_48: 0.9826 - recall_48: 0.9480 - val_loss: 3.9176 - val_accuracy: 0.3695 - val_precision_48: 0.3812 - val_recall_48: 0.3484 Epoch 9/30 70/70 [==============================] - 17s 238ms/step - loss: 0.0688 - accuracy: 0.9926 - precision_48: 0.9954 - recall_48: 0.9842 - val_loss: 4.4446 - val_accuracy: 0.3801 - val_precision_48: 0.3888 - val_recall_48: 0.3665 Epoch 10/30 70/70 [==============================] - 17s 237ms/step - loss: 0.0373 - accuracy: 0.9956 - precision_48: 0.9985 - recall_48: 0.9948 - val_loss: 4.6541 - val_accuracy: 0.3756 - val_precision_48: 0.3784 - val_recall_48: 0.3544 Epoch 11/30 70/70 [==============================] - 17s 237ms/step - loss: 0.0334 - accuracy: 0.9977 - precision_48: 0.9982 - recall_48: 0.9975 - val_loss: 4.5257 - val_accuracy: 0.3756 - val_precision_48: 0.3831 - val_recall_48: 0.3560 Epoch 12/30 70/70 [==============================] - 17s 236ms/step - loss: 0.0295 - accuracy: 0.9955 - precision_48: 0.9955 - recall_48: 0.9937 - val_loss: 5.0584 - val_accuracy: 0.3816 - val_precision_48: 0.3838 - val_recall_48: 0.3635 Epoch 13/30 70/70 [==============================] - 17s 236ms/step - loss: 0.0443 - accuracy: 0.9969 - precision_48: 0.9969 - recall_48: 0.9963 - val_loss: 5.6473 - val_accuracy: 0.3891 - val_precision_48: 0.3888 - val_recall_48: 0.3771 Epoch 14/30 70/70 [==============================] - 17s 236ms/step - loss: 0.0114 - accuracy: 0.9988 - precision_48: 0.9988 - recall_48: 0.9986 - val_loss: 5.8181 - val_accuracy: 0.3605 - val_precision_48: 0.3715 - val_recall_48: 0.3575 Epoch 15/30 70/70 [==============================] - 17s 237ms/step - loss: 0.0985 - accuracy: 0.9867 - precision_48: 0.9874 - recall_48: 0.9855 - val_loss: 4.8383 - val_accuracy: 0.3680 - val_precision_48: 0.3776 - val_recall_48: 0.3560 Epoch 16/30 70/70 [==============================] - 17s 236ms/step - loss: 0.0871 - accuracy: 0.9779 - precision_48: 0.9785 - recall_48: 0.9757 - val_loss: 5.1105 - val_accuracy: 0.3786 - val_precision_48: 0.3825 - val_recall_48: 0.3560 Epoch 17/30 70/70 [==============================] - 16s 235ms/step - loss: 0.0475 - accuracy: 0.9891 - precision_48: 0.9890 - recall_48: 0.9880 - val_loss: 6.1318 - val_accuracy: 0.3680 - val_precision_48: 0.3715 - val_recall_48: 0.3575 Epoch 18/30 70/70 [==============================] - 17s 236ms/step - loss: 0.0208 - accuracy: 0.9966 - precision_48: 0.9966 - recall_48: 0.9965 - val_loss: 6.2873 - val_accuracy: 0.3544 - val_precision_48: 0.3616 - val_recall_48: 0.3469 Epoch 19/30 70/70 [==============================] - 16s 234ms/step - loss: 0.0109 - accuracy: 0.9988 - precision_48: 0.9988 - recall_48: 0.9987 - val_loss: 6.5813 - val_accuracy: 0.3499 - val_precision_48: 0.3538 - val_recall_48: 0.3394 Epoch 20/30 70/70 [==============================] - 17s 236ms/step - loss: 0.0155 - accuracy: 0.9971 - precision_48: 0.9981 - recall_48: 0.9967 - val_loss: 6.1003 - val_accuracy: 0.3454 - val_precision_48: 0.3537 - val_recall_48: 0.3318 Epoch 21/30 70/70 [==============================] - 17s 237ms/step - loss: 0.0172 - accuracy: 0.9977 - precision_48: 0.9977 - recall_48: 0.9970 - val_loss: 6.4217 - val_accuracy: 0.3544 - val_precision_48: 0.3573 - val_recall_48: 0.3379
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 6.4007391929626465 / Test accuracy: 0.3333333432674408
history = test_early_stop(path, [256,256,256],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_50" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_113 (Conv2D) (None, 254, 254, 256) 7168 _________________________________________________________________ max_pooling2d_69 (MaxPooling (None, 127, 127, 256) 0 _________________________________________________________________ conv2d_114 (Conv2D) (None, 125, 125, 256) 590080 _________________________________________________________________ max_pooling2d_70 (MaxPooling (None, 62, 62, 256) 0 _________________________________________________________________ conv2d_115 (Conv2D) (None, 60, 60, 256) 590080 _________________________________________________________________ max_pooling2d_71 (MaxPooling (None, 30, 30, 256) 0 _________________________________________________________________ flatten_49 (Flatten) (None, 230400) 0 _________________________________________________________________ dense_65 (Dense) (None, 5) 1152005 ================================================================= Total params: 2,339,333 Trainable params: 2,339,333 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 20s 268ms/step - loss: 2.1808 - accuracy: 0.2591 - precision_49: 0.2107 - recall_49: 0.0259 - val_loss: 1.5019 - val_accuracy: 0.3665 - val_precision_49: 0.5573 - val_recall_49: 0.1101 Epoch 2/30 70/70 [==============================] - 17s 247ms/step - loss: 1.4801 - accuracy: 0.3697 - precision_49: 0.5751 - recall_49: 0.0846 - val_loss: 1.3598 - val_accuracy: 0.4540 - val_precision_49: 0.6465 - val_recall_49: 0.2097 Epoch 3/30 70/70 [==============================] - 17s 246ms/step - loss: 1.2715 - accuracy: 0.4898 - precision_49: 0.6574 - recall_49: 0.2435 - val_loss: 1.3129 - val_accuracy: 0.4811 - val_precision_49: 0.6566 - val_recall_49: 0.1961 Epoch 4/30 70/70 [==============================] - 17s 248ms/step - loss: 1.1677 - accuracy: 0.5366 - precision_49: 0.7122 - recall_49: 0.3221 - val_loss: 1.4426 - val_accuracy: 0.4585 - val_precision_49: 0.5406 - val_recall_49: 0.2911 Epoch 5/30 70/70 [==============================] - 17s 249ms/step - loss: 1.0484 - accuracy: 0.5969 - precision_49: 0.7273 - recall_49: 0.4206 - val_loss: 1.4969 - val_accuracy: 0.4646 - val_precision_49: 0.5459 - val_recall_49: 0.3771 Epoch 6/30 70/70 [==============================] - 17s 247ms/step - loss: 0.8406 - accuracy: 0.6832 - precision_49: 0.7543 - recall_49: 0.5649 - val_loss: 1.4268 - val_accuracy: 0.5023 - val_precision_49: 0.5672 - val_recall_49: 0.4072 Epoch 7/30 70/70 [==============================] - 17s 249ms/step - loss: 0.6272 - accuracy: 0.7741 - precision_49: 0.8418 - recall_49: 0.7057 - val_loss: 1.6920 - val_accuracy: 0.4992 - val_precision_49: 0.5336 - val_recall_49: 0.4434 Epoch 8/30 70/70 [==============================] - 17s 249ms/step - loss: 0.4061 - accuracy: 0.8606 - precision_49: 0.8948 - recall_49: 0.8115 - val_loss: 2.1374 - val_accuracy: 0.4736 - val_precision_49: 0.4940 - val_recall_49: 0.4344 Epoch 9/30 70/70 [==============================] - 17s 249ms/step - loss: 0.2369 - accuracy: 0.9218 - precision_49: 0.9401 - recall_49: 0.8995 - val_loss: 2.5430 - val_accuracy: 0.4872 - val_precision_49: 0.5000 - val_recall_49: 0.4555 Epoch 10/30 70/70 [==============================] - 18s 251ms/step - loss: 0.2068 - accuracy: 0.9376 - precision_49: 0.9516 - recall_49: 0.9174 - val_loss: 2.9920 - val_accuracy: 0.4811 - val_precision_49: 0.4873 - val_recall_49: 0.4630 Epoch 11/30 70/70 [==============================] - 17s 248ms/step - loss: 0.1210 - accuracy: 0.9641 - precision_49: 0.9682 - recall_49: 0.9541 - val_loss: 3.5423 - val_accuracy: 0.4781 - val_precision_49: 0.4906 - val_recall_49: 0.4706 Epoch 12/30 70/70 [==============================] - 17s 250ms/step - loss: 0.0928 - accuracy: 0.9874 - precision_49: 0.9907 - recall_49: 0.9862 - val_loss: 3.8583 - val_accuracy: 0.4721 - val_precision_49: 0.4802 - val_recall_49: 0.4570 Epoch 13/30 70/70 [==============================] - 17s 249ms/step - loss: 0.0460 - accuracy: 0.9923 - precision_49: 0.9931 - recall_49: 0.9919 - val_loss: 3.9429 - val_accuracy: 0.4585 - val_precision_49: 0.4618 - val_recall_49: 0.4465 Epoch 14/30 70/70 [==============================] - 18s 250ms/step - loss: 0.0507 - accuracy: 0.9877 - precision_49: 0.9886 - recall_49: 0.9873 - val_loss: 3.7348 - val_accuracy: 0.4615 - val_precision_49: 0.4648 - val_recall_49: 0.4480
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.770984172821045 / Test accuracy: 0.4826388955116272
history = test_early_stop(path, [256,256,256,256],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_51" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_116 (Conv2D) (None, 254, 254, 256) 7168 _________________________________________________________________ max_pooling2d_72 (MaxPooling (None, 127, 127, 256) 0 _________________________________________________________________ conv2d_117 (Conv2D) (None, 125, 125, 256) 590080 _________________________________________________________________ max_pooling2d_73 (MaxPooling (None, 62, 62, 256) 0 _________________________________________________________________ conv2d_118 (Conv2D) (None, 60, 60, 256) 590080 _________________________________________________________________ max_pooling2d_74 (MaxPooling (None, 30, 30, 256) 0 _________________________________________________________________ conv2d_119 (Conv2D) (None, 28, 28, 256) 590080 _________________________________________________________________ max_pooling2d_75 (MaxPooling (None, 14, 14, 256) 0 _________________________________________________________________ flatten_50 (Flatten) (None, 50176) 0 _________________________________________________________________ dense_66 (Dense) (None, 5) 250885 ================================================================= Total params: 2,028,293 Trainable params: 2,028,293 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 19s 254ms/step - loss: 1.6623 - accuracy: 0.2397 - precision_50: 0.0493 - recall_50: 4.5753e-05 - val_loss: 1.5792 - val_accuracy: 0.2971 - val_precision_50: 0.0000e+00 - val_recall_50: 0.0000e+00 Epoch 2/30 70/70 [==============================] - 18s 252ms/step - loss: 1.5617 - accuracy: 0.3052 - precision_50: 0.3924 - recall_50: 0.0120 - val_loss: 1.6095 - val_accuracy: 0.2609 - val_precision_50: 0.5000 - val_recall_50: 0.1403 Epoch 3/30 70/70 [==============================] - 18s 250ms/step - loss: 1.5345 - accuracy: 0.3348 - precision_50: 0.5372 - recall_50: 0.0481 - val_loss: 1.4994 - val_accuracy: 0.3710 - val_precision_50: 0.6071 - val_recall_50: 0.0256 Epoch 4/30 70/70 [==============================] - 18s 254ms/step - loss: 1.4128 - accuracy: 0.4160 - precision_50: 0.5774 - recall_50: 0.1200 - val_loss: 1.4910 - val_accuracy: 0.3725 - val_precision_50: 0.5742 - val_recall_50: 0.1342 Epoch 5/30 70/70 [==============================] - 18s 252ms/step - loss: 1.3689 - accuracy: 0.4494 - precision_50: 0.6030 - recall_50: 0.1629 - val_loss: 1.3494 - val_accuracy: 0.4751 - val_precision_50: 0.7021 - val_recall_50: 0.0995 Epoch 6/30 70/70 [==============================] - 18s 252ms/step - loss: 1.3047 - accuracy: 0.4958 - precision_50: 0.6687 - recall_50: 0.2329 - val_loss: 1.3555 - val_accuracy: 0.4736 - val_precision_50: 0.6000 - val_recall_50: 0.0950 Epoch 7/30 70/70 [==============================] - 18s 248ms/step - loss: 1.1959 - accuracy: 0.5486 - precision_50: 0.7042 - recall_50: 0.3039 - val_loss: 1.2397 - val_accuracy: 0.4947 - val_precision_50: 0.6444 - val_recall_50: 0.3198 Epoch 8/30 70/70 [==============================] - 18s 253ms/step - loss: 1.0650 - accuracy: 0.5975 - precision_50: 0.7114 - recall_50: 0.4321 - val_loss: 1.3010 - val_accuracy: 0.4796 - val_precision_50: 0.5417 - val_recall_50: 0.2745 Epoch 9/30 70/70 [==============================] - 18s 250ms/step - loss: 0.9437 - accuracy: 0.6404 - precision_50: 0.7483 - recall_50: 0.4932 - val_loss: 1.4151 - val_accuracy: 0.5234 - val_precision_50: 0.5824 - val_recall_50: 0.3891 Epoch 10/30 70/70 [==============================] - 18s 254ms/step - loss: 0.8185 - accuracy: 0.6916 - precision_50: 0.7737 - recall_50: 0.5904 - val_loss: 1.3466 - val_accuracy: 0.5173 - val_precision_50: 0.5858 - val_recall_50: 0.4223 Epoch 11/30 70/70 [==============================] - 18s 250ms/step - loss: 0.6149 - accuracy: 0.7708 - precision_50: 0.8330 - recall_50: 0.7114 - val_loss: 1.5041 - val_accuracy: 0.5023 - val_precision_50: 0.5463 - val_recall_50: 0.4268 Epoch 12/30 70/70 [==============================] - 18s 258ms/step - loss: 0.4881 - accuracy: 0.8272 - precision_50: 0.8605 - recall_50: 0.7844 - val_loss: 1.6791 - val_accuracy: 0.4992 - val_precision_50: 0.5299 - val_recall_50: 0.4404 Epoch 13/30 70/70 [==============================] - 18s 250ms/step - loss: 0.3250 - accuracy: 0.8935 - precision_50: 0.9157 - recall_50: 0.8623 - val_loss: 2.0935 - val_accuracy: 0.5264 - val_precision_50: 0.5503 - val_recall_50: 0.4947 Epoch 14/30 70/70 [==============================] - 17s 249ms/step - loss: 0.2411 - accuracy: 0.9229 - precision_50: 0.9393 - recall_50: 0.9031 - val_loss: 2.1776 - val_accuracy: 0.5173 - val_precision_50: 0.5334 - val_recall_50: 0.4932 Epoch 15/30 70/70 [==============================] - 18s 253ms/step - loss: 0.1859 - accuracy: 0.9400 - precision_50: 0.9527 - recall_50: 0.9285 - val_loss: 2.6621 - val_accuracy: 0.5173 - val_precision_50: 0.5270 - val_recall_50: 0.5008 Epoch 16/30 70/70 [==============================] - 18s 250ms/step - loss: 0.1100 - accuracy: 0.9691 - precision_50: 0.9737 - recall_50: 0.9644 - val_loss: 2.9955 - val_accuracy: 0.5249 - val_precision_50: 0.5422 - val_recall_50: 0.5234 Epoch 17/30 70/70 [==============================] - 18s 252ms/step - loss: 0.0728 - accuracy: 0.9758 - precision_50: 0.9797 - recall_50: 0.9732 - val_loss: 3.4379 - val_accuracy: 0.4992 - val_precision_50: 0.5000 - val_recall_50: 0.4842 Epoch 18/30 70/70 [==============================] - 18s 256ms/step - loss: 0.1156 - accuracy: 0.9604 - precision_50: 0.9664 - recall_50: 0.9565 - val_loss: 3.6519 - val_accuracy: 0.5068 - val_precision_50: 0.5132 - val_recall_50: 0.4992 Epoch 19/30 70/70 [==============================] - 18s 254ms/step - loss: 0.0442 - accuracy: 0.9874 - precision_50: 0.9889 - recall_50: 0.9873 - val_loss: 3.5742 - val_accuracy: 0.5143 - val_precision_50: 0.5201 - val_recall_50: 0.5068 Epoch 20/30 70/70 [==============================] - 18s 251ms/step - loss: 0.0489 - accuracy: 0.9881 - precision_50: 0.9897 - recall_50: 0.9869 - val_loss: 3.3382 - val_accuracy: 0.5128 - val_precision_50: 0.5250 - val_recall_50: 0.5068 Epoch 21/30 70/70 [==============================] - 17s 250ms/step - loss: 0.0663 - accuracy: 0.9801 - precision_50: 0.9862 - recall_50: 0.9780 - val_loss: 3.4613 - val_accuracy: 0.5098 - val_precision_50: 0.5235 - val_recall_50: 0.5038
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.168809175491333 / Test accuracy: 0.5729166865348816
history = test_early_stop(path, [256,256,256,256,256],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_52" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_120 (Conv2D) (None, 254, 254, 256) 7168 _________________________________________________________________ max_pooling2d_76 (MaxPooling (None, 127, 127, 256) 0 _________________________________________________________________ conv2d_121 (Conv2D) (None, 125, 125, 256) 590080 _________________________________________________________________ max_pooling2d_77 (MaxPooling (None, 62, 62, 256) 0 _________________________________________________________________ conv2d_122 (Conv2D) (None, 60, 60, 256) 590080 _________________________________________________________________ max_pooling2d_78 (MaxPooling (None, 30, 30, 256) 0 _________________________________________________________________ conv2d_123 (Conv2D) (None, 28, 28, 256) 590080 _________________________________________________________________ max_pooling2d_79 (MaxPooling (None, 14, 14, 256) 0 _________________________________________________________________ conv2d_124 (Conv2D) (None, 12, 12, 256) 590080 _________________________________________________________________ max_pooling2d_80 (MaxPooling (None, 6, 6, 256) 0 _________________________________________________________________ flatten_51 (Flatten) (None, 9216) 0 _________________________________________________________________ dense_67 (Dense) (None, 5) 46085 ================================================================= Total params: 2,413,573 Trainable params: 2,413,573 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 19s 257ms/step - loss: 1.6314 - accuracy: 0.2179 - precision_51: 0.3389 - recall_51: 0.0186 - val_loss: 1.5949 - val_accuracy: 0.2428 - val_precision_51: 0.0000e+00 - val_recall_51: 0.0000e+00 Epoch 2/30 70/70 [==============================] - 18s 254ms/step - loss: 1.5910 - accuracy: 0.2804 - precision_51: 0.1446 - recall_51: 8.1106e-04 - val_loss: 1.5437 - val_accuracy: 0.3243 - val_precision_51: 0.5000 - val_recall_51: 0.0015 Epoch 3/30 70/70 [==============================] - 18s 253ms/step - loss: 1.5224 - accuracy: 0.3585 - precision_51: 0.6400 - recall_51: 0.0400 - val_loss: 1.4340 - val_accuracy: 0.4314 - val_precision_51: 0.5281 - val_recall_51: 0.0709 Epoch 4/30 70/70 [==============================] - 18s 253ms/step - loss: 1.3923 - accuracy: 0.4611 - precision_51: 0.5923 - recall_51: 0.1639 - val_loss: 1.3141 - val_accuracy: 0.5023 - val_precision_51: 0.6550 - val_recall_51: 0.1976 Epoch 5/30 70/70 [==============================] - 18s 253ms/step - loss: 1.2893 - accuracy: 0.4977 - precision_51: 0.6253 - recall_51: 0.2380 - val_loss: 1.3483 - val_accuracy: 0.4615 - val_precision_51: 0.6827 - val_recall_51: 0.2142 Epoch 6/30 70/70 [==============================] - 18s 253ms/step - loss: 1.2012 - accuracy: 0.5382 - precision_51: 0.6790 - recall_51: 0.3212 - val_loss: 1.2355 - val_accuracy: 0.5354 - val_precision_51: 0.6593 - val_recall_51: 0.3620 Epoch 7/30 70/70 [==============================] - 18s 248ms/step - loss: 1.0696 - accuracy: 0.5815 - precision_51: 0.7150 - recall_51: 0.4160 - val_loss: 1.1543 - val_accuracy: 0.5520 - val_precision_51: 0.6705 - val_recall_51: 0.4389 Epoch 8/30 70/70 [==============================] - 18s 256ms/step - loss: 0.9705 - accuracy: 0.6287 - precision_51: 0.7266 - recall_51: 0.4836 - val_loss: 1.1772 - val_accuracy: 0.5505 - val_precision_51: 0.6580 - val_recall_51: 0.4208 Epoch 9/30 70/70 [==============================] - 18s 255ms/step - loss: 0.8196 - accuracy: 0.6861 - precision_51: 0.7974 - recall_51: 0.5788 - val_loss: 1.2036 - val_accuracy: 0.5747 - val_precision_51: 0.6391 - val_recall_51: 0.4540 Epoch 10/30 70/70 [==============================] - 18s 256ms/step - loss: 0.6884 - accuracy: 0.7508 - precision_51: 0.8134 - recall_51: 0.6450 - val_loss: 1.3706 - val_accuracy: 0.5551 - val_precision_51: 0.6119 - val_recall_51: 0.4947 Epoch 11/30 70/70 [==============================] - 18s 252ms/step - loss: 0.5031 - accuracy: 0.8126 - precision_51: 0.8624 - recall_51: 0.7604 - val_loss: 1.3826 - val_accuracy: 0.5837 - val_precision_51: 0.6175 - val_recall_51: 0.5309 Epoch 12/30 70/70 [==============================] - 18s 254ms/step - loss: 0.3533 - accuracy: 0.8848 - precision_51: 0.9074 - recall_51: 0.8519 - val_loss: 1.5896 - val_accuracy: 0.5792 - val_precision_51: 0.6036 - val_recall_51: 0.5490 Epoch 13/30 70/70 [==============================] - 18s 253ms/step - loss: 0.2239 - accuracy: 0.9272 - precision_51: 0.9401 - recall_51: 0.9107 - val_loss: 1.6990 - val_accuracy: 0.5882 - val_precision_51: 0.6093 - val_recall_51: 0.5551 Epoch 14/30 70/70 [==============================] - 18s 255ms/step - loss: 0.2087 - accuracy: 0.9342 - precision_51: 0.9469 - recall_51: 0.9207 - val_loss: 2.1204 - val_accuracy: 0.5626 - val_precision_51: 0.5780 - val_recall_51: 0.5475 Epoch 15/30 70/70 [==============================] - 18s 255ms/step - loss: 0.1476 - accuracy: 0.9521 - precision_51: 0.9640 - recall_51: 0.9490 - val_loss: 2.1722 - val_accuracy: 0.5837 - val_precision_51: 0.5956 - val_recall_51: 0.5686 Epoch 16/30 70/70 [==============================] - 18s 253ms/step - loss: 0.1177 - accuracy: 0.9640 - precision_51: 0.9662 - recall_51: 0.9585 - val_loss: 2.6819 - val_accuracy: 0.5641 - val_precision_51: 0.5716 - val_recall_51: 0.5596 Epoch 17/30 70/70 [==============================] - 18s 253ms/step - loss: 0.0858 - accuracy: 0.9724 - precision_51: 0.9732 - recall_51: 0.9698 - val_loss: 3.3045 - val_accuracy: 0.5460 - val_precision_51: 0.5594 - val_recall_51: 0.5400 Epoch 18/30 70/70 [==============================] - 18s 254ms/step - loss: 0.1103 - accuracy: 0.9596 - precision_51: 0.9648 - recall_51: 0.9573 - val_loss: 2.9547 - val_accuracy: 0.5747 - val_precision_51: 0.5783 - val_recall_51: 0.5626 Epoch 19/30 70/70 [==============================] - 18s 252ms/step - loss: 0.0861 - accuracy: 0.9748 - precision_51: 0.9779 - recall_51: 0.9728 - val_loss: 3.1899 - val_accuracy: 0.5535 - val_precision_51: 0.5569 - val_recall_51: 0.5460 Epoch 20/30 70/70 [==============================] - 18s 253ms/step - loss: 0.0743 - accuracy: 0.9794 - precision_51: 0.9814 - recall_51: 0.9767 - val_loss: 3.2564 - val_accuracy: 0.5852 - val_precision_51: 0.5923 - val_recall_51: 0.5807 Epoch 21/30 70/70 [==============================] - 18s 254ms/step - loss: 0.0394 - accuracy: 0.9915 - precision_51: 0.9917 - recall_51: 0.9915 - val_loss: 2.9639 - val_accuracy: 0.5867 - val_precision_51: 0.5904 - val_recall_51: 0.5762
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 2.8513450622558594 / Test accuracy: 0.5902777910232544
history = test_early_stop(path, [256,256,256,256,256,256],image_width, image_height)
Found 2225 images belonging to 5 classes. Found 663 images belonging to 5 classes. Found 288 images belonging to 5 classes. Model: "sequential_53" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= conv2d_125 (Conv2D) (None, 254, 254, 256) 7168 _________________________________________________________________ max_pooling2d_81 (MaxPooling (None, 127, 127, 256) 0 _________________________________________________________________ conv2d_126 (Conv2D) (None, 125, 125, 256) 590080 _________________________________________________________________ max_pooling2d_82 (MaxPooling (None, 62, 62, 256) 0 _________________________________________________________________ conv2d_127 (Conv2D) (None, 60, 60, 256) 590080 _________________________________________________________________ max_pooling2d_83 (MaxPooling (None, 30, 30, 256) 0 _________________________________________________________________ conv2d_128 (Conv2D) (None, 28, 28, 256) 590080 _________________________________________________________________ max_pooling2d_84 (MaxPooling (None, 14, 14, 256) 0 _________________________________________________________________ conv2d_129 (Conv2D) (None, 12, 12, 256) 590080 _________________________________________________________________ max_pooling2d_85 (MaxPooling (None, 6, 6, 256) 0 _________________________________________________________________ conv2d_130 (Conv2D) (None, 4, 4, 256) 590080 _________________________________________________________________ max_pooling2d_86 (MaxPooling (None, 2, 2, 256) 0 _________________________________________________________________ flatten_52 (Flatten) (None, 1024) 0 _________________________________________________________________ dense_68 (Dense) (None, 5) 5125 ================================================================= Total params: 2,962,693 Trainable params: 2,962,693 Non-trainable params: 0 _________________________________________________________________ Epoch 1/30 70/70 [==============================] - 19s 259ms/step - loss: 1.5972 - accuracy: 0.2491 - precision_52: 0.4774 - recall_52: 0.0103 - val_loss: 1.4670 - val_accuracy: 0.4178 - val_precision_52: 0.5556 - val_recall_52: 0.0075 Epoch 2/30 70/70 [==============================] - 18s 252ms/step - loss: 1.4846 - accuracy: 0.3839 - precision_52: 0.5357 - recall_52: 0.0764 - val_loss: 1.3956 - val_accuracy: 0.4344 - val_precision_52: 0.5549 - val_recall_52: 0.2971 Epoch 3/30 70/70 [==============================] - 18s 254ms/step - loss: 1.4011 - accuracy: 0.4382 - precision_52: 0.5821 - recall_52: 0.1735 - val_loss: 1.3957 - val_accuracy: 0.4706 - val_precision_52: 0.5943 - val_recall_52: 0.1900 Epoch 4/30 70/70 [==============================] - 18s 255ms/step - loss: 1.3376 - accuracy: 0.4720 - precision_52: 0.6042 - recall_52: 0.2241 - val_loss: 1.2962 - val_accuracy: 0.5158 - val_precision_52: 0.7014 - val_recall_52: 0.1523 Epoch 5/30 70/70 [==============================] - 18s 253ms/step - loss: 1.2948 - accuracy: 0.4885 - precision_52: 0.5953 - recall_52: 0.2447 - val_loss: 1.2752 - val_accuracy: 0.5219 - val_precision_52: 0.6182 - val_recall_52: 0.3077 Epoch 6/30 70/70 [==============================] - 18s 254ms/step - loss: 1.1869 - accuracy: 0.5483 - precision_52: 0.6483 - recall_52: 0.3523 - val_loss: 1.2521 - val_accuracy: 0.5113 - val_precision_52: 0.6096 - val_recall_52: 0.2685 Epoch 7/30 70/70 [==============================] - 18s 251ms/step - loss: 1.1127 - accuracy: 0.5692 - precision_52: 0.6870 - recall_52: 0.3906 - val_loss: 1.1995 - val_accuracy: 0.5551 - val_precision_52: 0.6684 - val_recall_52: 0.3831 Epoch 8/30 70/70 [==============================] - 18s 253ms/step - loss: 1.0154 - accuracy: 0.6160 - precision_52: 0.7208 - recall_52: 0.4567 - val_loss: 1.3423 - val_accuracy: 0.5083 - val_precision_52: 0.5986 - val_recall_52: 0.3801 Epoch 9/30 70/70 [==============================] - 18s 255ms/step - loss: 0.9359 - accuracy: 0.6517 - precision_52: 0.7364 - recall_52: 0.5057 - val_loss: 1.2308 - val_accuracy: 0.5324 - val_precision_52: 0.6442 - val_recall_52: 0.4042 Epoch 10/30 70/70 [==============================] - 18s 254ms/step - loss: 0.8036 - accuracy: 0.7100 - precision_52: 0.7949 - recall_52: 0.6016 - val_loss: 1.3470 - val_accuracy: 0.5686 - val_precision_52: 0.6147 - val_recall_52: 0.4932 Epoch 11/30 70/70 [==============================] - 18s 254ms/step - loss: 0.6948 - accuracy: 0.7435 - precision_52: 0.8119 - recall_52: 0.6773 - val_loss: 1.4371 - val_accuracy: 0.5400 - val_precision_52: 0.5829 - val_recall_52: 0.4615 Epoch 12/30 70/70 [==============================] - 18s 253ms/step - loss: 0.5627 - accuracy: 0.7950 - precision_52: 0.8509 - recall_52: 0.7310 - val_loss: 1.4236 - val_accuracy: 0.5686 - val_precision_52: 0.6147 - val_recall_52: 0.5173 Epoch 13/30 70/70 [==============================] - 18s 251ms/step - loss: 0.3957 - accuracy: 0.8570 - precision_52: 0.8858 - recall_52: 0.8241 - val_loss: 1.9069 - val_accuracy: 0.5339 - val_precision_52: 0.5677 - val_recall_52: 0.4932 Epoch 14/30 70/70 [==============================] - 18s 255ms/step - loss: 0.2948 - accuracy: 0.9008 - precision_52: 0.9244 - recall_52: 0.8717 - val_loss: 1.8705 - val_accuracy: 0.5490 - val_precision_52: 0.5695 - val_recall_52: 0.5189 Epoch 15/30 70/70 [==============================] - 18s 253ms/step - loss: 0.2893 - accuracy: 0.8938 - precision_52: 0.9203 - recall_52: 0.8646 - val_loss: 2.2153 - val_accuracy: 0.4811 - val_precision_52: 0.5036 - val_recall_52: 0.4193 Epoch 16/30 70/70 [==============================] - 18s 252ms/step - loss: 0.3472 - accuracy: 0.8792 - precision_52: 0.9093 - recall_52: 0.8494 - val_loss: 2.2006 - val_accuracy: 0.5279 - val_precision_52: 0.5502 - val_recall_52: 0.5038 Epoch 17/30 70/70 [==============================] - 18s 255ms/step - loss: 0.1928 - accuracy: 0.9421 - precision_52: 0.9514 - recall_52: 0.9272 - val_loss: 2.1694 - val_accuracy: 0.5762 - val_precision_52: 0.5886 - val_recall_52: 0.5611 Epoch 18/30 70/70 [==============================] - 18s 253ms/step - loss: 0.1261 - accuracy: 0.9669 - precision_52: 0.9705 - recall_52: 0.9612 - val_loss: 2.9376 - val_accuracy: 0.5309 - val_precision_52: 0.5475 - val_recall_52: 0.5219 Epoch 19/30 70/70 [==============================] - 18s 256ms/step - loss: 0.1818 - accuracy: 0.9424 - precision_52: 0.9485 - recall_52: 0.9367 - val_loss: 2.3127 - val_accuracy: 0.5204 - val_precision_52: 0.5385 - val_recall_52: 0.5068 Epoch 20/30 70/70 [==============================] - 18s 253ms/step - loss: 0.1432 - accuracy: 0.9525 - precision_52: 0.9564 - recall_52: 0.9435 - val_loss: 3.0486 - val_accuracy: 0.5143 - val_precision_52: 0.5261 - val_recall_52: 0.5008 Epoch 21/30 70/70 [==============================] - 18s 253ms/step - loss: 0.1242 - accuracy: 0.9607 - precision_52: 0.9611 - recall_52: 0.9565 - val_loss: 2.7162 - val_accuracy: 0.5490 - val_precision_52: 0.5563 - val_recall_52: 0.5294 Epoch 22/30 70/70 [==============================] - 18s 255ms/step - loss: 0.0821 - accuracy: 0.9812 - precision_52: 0.9835 - recall_52: 0.9803 - val_loss: 3.1033 - val_accuracy: 0.5189 - val_precision_52: 0.5262 - val_recall_52: 0.5158 Epoch 23/30 70/70 [==============================] - 17s 249ms/step - loss: 0.0755 - accuracy: 0.9816 - precision_52: 0.9847 - recall_52: 0.9777 - val_loss: 3.4196 - val_accuracy: 0.5460 - val_precision_52: 0.5516 - val_recall_52: 0.5400 Epoch 24/30 70/70 [==============================] - 18s 252ms/step - loss: 0.0514 - accuracy: 0.9855 - precision_52: 0.9867 - recall_52: 0.9847 - val_loss: 3.1711 - val_accuracy: 0.5505 - val_precision_52: 0.5604 - val_recall_52: 0.5460 Epoch 25/30 70/70 [==============================] - 18s 252ms/step - loss: 0.0957 - accuracy: 0.9766 - precision_52: 0.9791 - recall_52: 0.9753 - val_loss: 3.7838 - val_accuracy: 0.5430 - val_precision_52: 0.5432 - val_recall_52: 0.5309
/usr/local/lib/python3.7/dist-packages/tensorflow/python/keras/engine/training.py:1877: UserWarning: `Model.evaluate_generator` is deprecated and will be removed in a future version. Please use `Model.evaluate`, which supports generators.
warnings.warn('`Model.evaluate_generator` is deprecated and '
Test loss: 3.7600936889648438 / Test accuracy: 0.5486111044883728